hacktricks/network-services-pentesting/1080-pentesting-socks.md
2024-02-10 18:14:16 +00:00

197 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1080 - Socks Pentesting
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
## Temel Bilgiler
**SOCKS**, bir istemci ve sunucu arasında veri transferi için kullanılan bir protokoldür. Beşinci sürüm olan **SOCKS5**, yalnızca yetkili kullanıcıların sunucuya erişmesine izin veren isteğe bağlı bir kimlik doğrulama özelliği ekler. Temel olarak TCP bağlantılarının proxy'lenmesini ve UDP paketlerinin yönlendirilmesini işler ve OSI modelinin oturum katmanında (Katman 5) çalışır.
**Varsayılan Port:** 1080
## Numaralandırma
### Kimlik Doğrulama Kontrolü
```bash
nmap -p 1080 <ip> --script socks-auth-info
```
#### Temel kullanım
Brute Force saldırısı, bir hedefin şifresini veya kimlik doğrulama bilgilerini tahmin etmek için sürekli olarak farklı kombinasyonları denemek amacıyla kullanılan bir yöntemdir. Bu saldırı, genellikle oturum açma sayfaları veya kimlik doğrulama mekanizmaları gibi hedefin güvenlik önlemlerini aşmak için kullanılır.
Brute Force saldırısını gerçekleştirmek için, bir saldırgan genellikle bir kullanıcı adı ve şifre listesi kullanır. Ardından, bu listeyi hedef sistemdeki oturum açma sayfasına veya kimlik doğrulama mekanizmasına uygular. Saldırgan, doğru kullanıcı adı ve şifre kombinasyonunu bulana kadar farklı kombinasyonları denemeye devam eder.
Bu saldırı yöntemi, hedefin zayıf veya tahmin edilebilir bir şifre kullanması durumunda etkili olabilir. Ancak, güçlü şifreleme algoritmaları ve güvenlik önlemleri kullanıldığında Brute Force saldırıları daha zor hale gelir.
```bash
nmap --script socks-brute -p 1080 <ip>
```
#### Gelişmiş kullanım
In some cases, you may need to perform advanced tasks while using SOCKS proxies. Here are some techniques that can help you in such scenarios:
Bazı durumlarda, SOCKS proxy'leri kullanırken gelişmiş görevleri gerçekleştirmeniz gerekebilir. İşte böyle senaryolarda size yardımcı olabilecek bazı teknikler:
##### 1. Chaining SOCKS proxies
##### 1. SOCKS proxy zincirleme
You can chain multiple SOCKS proxies together to increase your anonymity and bypass certain restrictions. To do this, you need to configure each proxy to forward traffic to the next proxy in the chain. This can be done by specifying the next proxy's IP address and port in the configuration settings of each proxy.
Anonimliğinizi artırmak ve belirli kısıtlamaları aşmak için birden fazla SOCKS proxy'yi bir araya getirebilirsiniz. Bunun için her bir proxy'i zincirdeki bir sonraki proxy'e trafiği iletmek üzere yapılandırmanız gerekmektedir. Bu, her bir proxy'nin yapılandırma ayarlarında bir sonraki proxy'nin IP adresini ve portunu belirterek yapılabilir.
##### 2. Using SOCKS proxies with other tools
##### 2. Diğer araçlarla SOCKS proxy'lerini kullanma
You can use SOCKS proxies with other tools to enhance your capabilities during a penetration test. For example, you can use a SOCKS proxy with tools like Nmap or Burp Suite to scan or intercept network traffic. To do this, you need to configure the tool to use the SOCKS proxy by specifying its IP address and port.
Bir penetrasyon testi sırasında yeteneklerinizi artırmak için SOCKS proxy'leri diğer araçlarla kullanabilirsiniz. Örneğin, Nmap veya Burp Suite gibi araçları SOCKS proxy ile kullanarak ağ trafiğini taramak veya onu araya girmek için kullanabilirsiniz. Bunun için, aracı SOCKS proxy'yi kullanacak şekilde yapılandırmanız gerekmektedir. Bu, SOCKS proxy'nin IP adresini ve portunu belirterek yapılabilir.
##### 3. Authenticating SOCKS proxies
##### 3. SOCKS proxy'lerini kimlik doğrulama
Some SOCKS proxies support authentication to provide an additional layer of security. If you are using an authenticated SOCKS proxy, you need to provide the correct username and password in the proxy configuration settings. This ensures that only authorized users can access the proxy.
Bazı SOCKS proxy'leri, ek bir güvenlik katmanı sağlamak için kimlik doğrulamayı destekler. Eğer kimlik doğrulamalı bir SOCKS proxy kullanıyorsanız, proxy yapılandırma ayarlarında doğru kullanıcı adı ve şifreyi sağlamanız gerekmektedir. Bu, yalnızca yetkili kullanıcıların proxy'ye erişebileceğini sağlar.
By using these advanced techniques, you can maximize the benefits of SOCKS proxies and improve your penetration testing capabilities.
Bu gelişmiş teknikleri kullanarak, SOCKS proxy'lerin faydalarını maksimize edebilir ve penetrasyon testi yeteneklerinizi geliştirebilirsiniz.
```bash
nmap --script socks-brute --script-args userdb=users.txt,passdb=rockyou.txt,unpwdb.timelimit=30m -p 1080 <ip>
```
# Pentesting SOCKS
## Introduction
SOCKS (Socket Secure) is a protocol that allows a client to establish a connection through a proxy server. It is commonly used for bypassing network restrictions and anonymizing internet traffic. In this section, we will explore various techniques for pentesting SOCKS servers.
## Enumeration
### Version Detection
To determine the version of the SOCKS server, we can send a `SOCKS5` handshake request and analyze the response. The server will reply with its supported version and authentication methods.
```bash
$ nc -v <target_ip> <target_port>
> 05 01 00
< 05 00
```
If the server responds with `05 00`, it indicates that it supports `SOCKS5` without authentication.
### User Enumeration
To enumerate valid usernames on a SOCKS server, we can use the `USERAUTH` command. By sending a `USERAUTH` request with a specific username, we can determine if the username is valid or not.
```bash
$ nc -v <target_ip> <target_port>
> 05 01 00
< 05 00
> 01 03 61 64 6d 69 6e 00
< 01 00
```
In the above example, we send a `USERAUTH` request with the username `admin`. If the server responds with `01 00`, it means that the username is valid.
## Exploitation
### Proxy Chaining
Proxy chaining involves using multiple SOCKS servers in a chain to route traffic through different proxies. This technique can be used to bypass network restrictions and increase anonymity.
To set up proxy chaining, we need to configure each SOCKS server to forward traffic to the next server in the chain. This can be done by modifying the server's configuration file or using a proxy chaining tool.
### Traffic Analysis
By analyzing the traffic between the client and the SOCKS server, we can gain valuable information about the network infrastructure and potential vulnerabilities. Tools like Wireshark can be used to capture and analyze network traffic.
### Authentication Bypass
If the SOCKS server requires authentication, we can attempt to bypass it by exploiting vulnerabilities in the authentication mechanism. Common techniques include brute-forcing weak passwords, exploiting default credentials, or leveraging authentication bypass vulnerabilities.
## Conclusion
Pentesting SOCKS servers involves enumerating server versions, enumerating valid usernames, exploiting proxy chaining, analyzing network traffic, and bypassing authentication. By understanding these techniques, we can effectively assess the security of SOCKS servers and identify potential vulnerabilities.
```
PORT STATE SERVICE
1080/tcp open socks
| socks-brute:
| Accounts
| patrik:12345 - Valid credentials
| Statistics
|_ Performed 1921 guesses in 6 seconds, average tps: 320
```
## Tünelleme ve Port Yönlendirme
### Temel proxychains kullanımı
Proxy zincirini ayarlayarak socks proxy kullanın
```
nano /etc/proxychains4.conf
```
## SOCKS Proxy
A SOCKS proxy is a protocol that allows a client to establish a connection through a firewall to a server located on the other side of the firewall. It can be used to bypass network restrictions and access resources that are otherwise blocked.
### SOCKS Versions
There are several versions of the SOCKS protocol, with the most commonly used being SOCKS4 and SOCKS5.
#### SOCKS4
SOCKS4 is an older version of the protocol that only supports TCP connections. It does not support authentication, which means that anyone who can connect to the proxy can use it to access the internet.
#### SOCKS5
SOCKS5 is the latest version of the protocol and includes several improvements over SOCKS4. It supports both TCP and UDP connections and includes support for authentication. This means that the proxy can be configured to require a username and password before allowing connections.
### Setting Up a SOCKS Proxy
To set up a SOCKS proxy, you will need a server that supports the SOCKS protocol. There are several options available, including both free and paid services.
Once you have a server, you will need to configure your client to use the proxy. This can usually be done through the network settings or by using a proxy client.
### Using a SOCKS Proxy for Pentesting
A SOCKS proxy can be a useful tool for pentesting, as it allows you to route your traffic through a remote server. This can help to hide your identity and location, making it more difficult for defenders to detect and block your activities.
When using a SOCKS proxy for pentesting, it is important to ensure that the proxy is secure and trustworthy. Using an insecure or compromised proxy can expose your traffic to interception and manipulation.
### Conclusion
A SOCKS proxy is a powerful tool that can be used to bypass network restrictions and access resources that are otherwise blocked. It is important to use a secure and trustworthy proxy when using it for pentesting purposes.
```
socks5 10.10.10.10 1080
```
Kimlik doğrulama ile
```
socks5 10.10.10.10 1080 username password
```
#### Daha fazla bilgi için: [Tünel Oluşturma ve Port Yönlendirme](../generic-methodologies-and-resources/tunneling-and-port-forwarding.md)
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>