一句话开启HTTP服务

在实际的渗透测试中,有的时候需要自己创建一个http服务,来辅助我们的渗透测试,往往我们会遇到各种各样不同的环境,所以使用简单的方式在不同环境下创建一个HTTP服务还是非常有用的。下面我们就简单介绍下,在不同环境下使用一句话启动HTTP服务的各种姿势。

Python

对于不同的python版本有不同的方式,下面就一一介绍。

Python <= 2.3

python -c "import SimpleHTTPServer as s; s.test();" 8000

Python >= 2.4

python -m SimpleHTTPServer 8000

Python 3.x

python -m http.server 8000

Python (Twisted)

这个需要安装Twisted模块,在已经安装了Twisted模块的情况下,可以执行以下命令:

twistd -n web -p 8000 --path .

或者:

python -c 'from twisted.web.server import Site; from twisted.web.static import File; from twisted.internet import reactor; reactor.listenTCP(8000, Site(File("."))); reactor.run()'

如果你想用这种方式启动,而且目标没有安装这个库,可以使用一下命令安装:

pip install twisted

Ruby

下面介绍一下针对不同版本的ruby实现这个功能的方法。

Ruby 1.9.2+

在不依赖库的情况下执行以下命令:

ruby -run -e httpd . -p8000

Ruby (webrick)

这个方式需要目标环境安装了webrick这个库,需要的ruby版本< 1.9.3。

ruby -r webrick -e 'WEBrick::HTTPServer.new(:Port => 8000, :DocumentRoot => Dir.pwd).start'

如何安装这个库:

gem install webrick

如何关闭这个进程:

执行ctrl+z后,使用kill -9 pid的方式干掉进程

Perl

perl中有几个库可以完成这个功能,如下:

Perl (HTTP::Server::Brick)

安装必要库:

cpan HTTP::Server::Brick

一句话启动服务:

perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick->new(port=>8000); $s->mount("/"=>{path=>"."}); $s->start'

Perl (IO::All)

安装必要库:

cpan IO::All

一句话启动服务:

perl -MIO::All -e 'io(":8080")->fork->accept->(sub { $_[0] < io(-x $1 ? "./$1 |" : $1) if /^GET \/(.*) / })'

Perl (Mojolicious)

安装必要库:

cpan Mojolicious::Lite

一句话启动服务:

perl -MMojolicious::Lite -MCwd -e 'app->static->paths->[0]=getcwd; app->start' daemon -l http://*:8000

PHP

php版本需要大于 5.4才能一句话实现这个功能:

php -S 127.0.0.1:8000

Erlang

Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。

执行一下命令启动服务:

erl -s inets -eval 'inets:start(httpd,[{server_name,"NAME"},{document_root, "."},{server_root, "."},{port, 8000},{mime_types,[{"html","text/html"},{"htm","text/html"},{"js","text/javascript"},{"css","text/css"},{"gif","image/gif"},{"jpg","image/jpeg"},{"jpeg","image/jpeg"},{"png","image/png"}]}]).'

busybox httpd

BusyBox 是一个集成了一百多个最常用linux命令和工具的软件。

可以使用BusyBox中的httpd启动服务:

busybox httpd -f -p 8000

webfs

webfs是一个简单的http服务器,主要是静态内容。

使用以下命令启动服务:

webfsd -F -p 8000

IIS Express

在Windows环境下,可下载IIS Express,然后启动:

C:\> "C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:C:\MyWeb /port:8000

下载地址如下:

https://docs.microsoft.com/en-us/iis/extensions/introduction-to-iis-express/iis-express-overview

安装测试

软件下载地址:

https://download.microsoft.com/download/D/C/4/DC4EC38C-A6AA-449D-9B19-7ABC6DF72B34/iisexpress_1_11_x86_en-US.msi

安装完成后,在命令行下启动,如图:

浏览器访问一下,如图:

总结

本文大概介绍了一下,如何使用很短的命令或者代码启动一个简单的http服务,提供下载,浏览服务。我们可以利用这个功能,不管是从内网下载资料,还是利用外网服务,远程下载执行命令都是非常有用的,省的我们需要的时候安装像apache这样的服务器,方便快捷,以后在渗透测试中如何使用,大家自由发挥,我就不多说了。

原文发布于微信公众号 - 信安之路(xazlsec)

原文发表时间:2017-08-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

SpringCloud Eureka自我保护机制

自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行。...

413100
来自专栏WindCoder

WIN7网络和共享中心显示未知但可以上网解决方式

今天在试一个《骑马与砍杀》的游戏相关问题的解决方法时,用了cmd命令中dll相关命令,没想到游戏问题没解决,还多了个“网络和共享中心显示未知”,右下角网络那成了...

2.5K10
来自专栏赵俊的Java专栏

Windows 转换 Socks5 为 HTTP 代理

6K30
来自专栏飞雪无情的博客

工具 | Android Studio 2.3镜像更新,极速下载体验#2

Android Studio 2.3发布了,更新了很多不错的功能,比如WebP的支持,AppLink助手等,,因为众所周知的原因,所以就第一时间更新了镜像,让大...

10030
来自专栏我就是马云飞

Android Studio 3.2新功能特性

45410
来自专栏闵开慧

让XP支持4G内存

  4G内存已经成为很多中高档笔记本电脑的标准配置。前两篇文章介绍了WIN7系统4G内存的破解过程和4G内存的完美利用。但是,很多朋友还是习惯用32位 XP系统...

1.5K110
来自专栏Java后端技术栈

使用Jenkins配置SpringBoot的自动化构建

http://blog.csdn.net/xlgen157387/article/details/50353317

13520
来自专栏乐沙弥的世界

Linux 终端tty pty pts描述

在使用Linux的过程中,当我们通过ssh或者telnet等方式连接到服务器之后,会有一个相应的终端来对应。而在直接登陆到Linux服务器的时候也有一个对应的终...

38620
来自专栏玄魂工作室

windows下 安装Kali Linux到 U盘的方法

此篇文章本不想写,因为和安装相关的文章也写了一些,网上也有类似的教程。不过最近知乎总是接到邀请要回答这个问题,索性写一写,不知道能不能满足要求。 作者:玄魂...

832150
来自专栏我叫刘半仙

SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架

前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置部署都变得简单,越来越多的互联网公司已经选择Spring...

1.3K130

扫码关注云+社区

领取腾讯云代金券