Nasıl Anonim Olarak Mesaj Gönderilir (SMS)

Dolyetyus

Co Admin
21 Nis 2020
1,207
670
Delft
Nasıl Anonim Olarak SMS Gönderebiliriz?

Başlamadan önce:

Bu konu 2 farklı dilde daha mevcuttur. İsterseniz göz atabilirsiniz.

İngilizce: https://www.turkhackteam.org/international-forum/1943594-how-send-messages-anonymously-sms.html#post9193512
İsveççe: https://www.turkhackteam.org/international-forum/1943592-hur-man-skickar-meddelanden-anonymt-sms.html#post9193508

Selamlar ve yeniden hoş geldiniz. Bugün bu konuda sizlere kullanışlı bir API takdim edeceğim. Bu API, anonim olarak birilerine mesaj göndermemize olanak sağlıyor. Bunu daha önceden kullanmayı denedim ama sadece Linux’ta çalıştı (Android de bir Linux olduğu için Android’de de çalışıyor) . Sanırım denemeleri python ile yaptığımdan da bahsetmeliyim. Diğer programlama dillerinde nasıl çalıştığından emin değilim ancak sanırım python ile sadece Linux’ta çalışıyor.

Her neyse şimdi bu API’yi göstermeye geçeceğim (Evet şimdi, bu API haricinde gereksiz yorumlarda bulunmayacağım).
İlk olarak bu site sayesinde birine mesaj gönderebiliyoruz. Fakat günlük sadece bir mesaj gönderme hakkımız var. Eğer daha fazla mesaj atabilmek istiyorsak para ödemeliyiz. Nasıl çalıştığını da açıklayayım.



API Kodları:

Başlamadan önce API kodlarını yazıyorum. Curl, Python, Ruby, Node.js, Javascript, PHP, C#, Java, Powershell ve Go dilleri için API’yı aşağıda bulabilirsiniz.


CURL
Kod:
[COLOR="plum"]$ curl -X POST https://textbelt.com/text \
       --data-urlencode phone='5555555555' \
       --data-urlencode message='Hello world' \
       -d key=textbelt[/COLOR]


PYTHON
Kod:
[COLOR="plum"]import requests
resp = requests.post('https://textbelt.com/text', {
  'phone': '5555555555',
  'message': 'Hello world',
  'key': 'textbelt',
})
print(resp.json())[/COLOR]


RUBY
Kod:
[COLOR="plum"]require 'net/http'
require 'uri'

uri = URI.parse("https://textbelt.com/text")
Net::HTTP.post_form(uri, {
  :phone => '5555555555',
  :message => 'Hello world',
  :key => 'textbelt',
})[/COLOR]

NODE.JS
Kod:
[COLOR="Plum"]// Using request
const request = require('request');
request.post('https://textbelt.com/text', {
  form: {
    phone: '5555555555',
    message: 'Hello world',
    key: 'textbelt',
  },
}, (err, httpResponse, body) => {
  console.log(JSON.parse(body));
});

// Using axios
const axios = require('axios');
axios.post('https://textbelt.com/text', {
  phone: '5555555555',
  message: 'Hello world',
  key: 'textbelt',
}).then(response => {
  console.log(response.data);
})[/COLOR]


JAVASCRIPT
Kod:
[COLOR="Plum"]fetch('https://textbelt.com/text', {
  method: 'post',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    phone: '5555555555',
    message: 'Hello world',
    key: 'textbelt',
  }),
}).then(response => {
  return response.json();
}).then(data => {
  console.log(data);
});[/COLOR]


PHP
Kod:
[COLOR="plum"]$ch = curl_init('https://textbelt.com/text');
$data = array(
  'phone' => '5555555555',
  'message' => 'Hello world',
  'key' => 'textbelt',
);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);[/COLOR]


C#
Kod:
[COLOR="Plum"]using System;
using System.Collections.Specialized;
using System.Net;

using (WebClient client = new WebClient())
{
  byte[] response = client.UploadValues("http://textbelt.com/text", new NameValueCollection() {
    { "phone", "5555555555" },
    { "message", "Hello world" },
    { "key", "textbelt" },
  });

  string result = System.Text.Encoding.UTF8.GetString(response);[/COLOR]


JAVA
Kod:
[COLOR="Plum"]final NameValuePair[] data = {
    new BasicNameValuePair("phone", "5555555555"),
    new BasicNameValuePair("message", "Hello world"),
    new BasicNameValuePair("key", "textbelt")
};
HttpClient httpClient = HttpClients.createMinimal();
HttpPost httpPost = new HttpPost("https://textbelt.com/text");
httpPost.setEntity(new UrlEncodedFormEntity(Arrays.asList(data)));
HttpResponse httpResponse = httpClient.execute(httpPost);

String responseString = EntityUtils.toString(httpResponse.getEntity());
JSONObject response = new JSONObject(responseString);[/COLOR]


POWERSHELL
Kod:
[COLOR="Plum"]$body = @{
  "phone"="5555555555"
  "message"="Hello World"
  "key"="textbelt"
}
$submit = Invoke-WebRequest -Uri https://textbelt.com/text -Body $body -Method Post[/COLOR]


GO
Kod:
[COLOR="Plum"]import (
  "net/http"
  "net/url"
)

func main() {
  values := url.Values{
    "phone": {"5555555555"},
    "message": {"Hello world"},
    "key": {"textbelt"},
  }

  http.PostForm("https://textbelt.com/text", values)[/COLOR]



Şimdi Bu API’yı Kullanalım Ve Bir Mesaj Gönderelim

Pekâlâ, ben pythonda çalıştıracağım. Eğer beni tanıyorsanız python kullanıcısı olduğumu bilirsiniz. (Hayır, kesinlikle diğer dilleri bilmediğimden dolayı değil :D)
Şimdi yeni bir IDE açalım ve kodları kopyalayalım.


rZWiUP.jpg


Görebildiğiniz üzere yukarıdaki kod çok da kullanıcı dostu değil. Bu yüzden düzenleme gereği duyuyorum. Böylelikle bunu kullanması daha kolay ve kullanışlı yapabiliriz.


fwOOh5.jpg


Şimdi kod daha güzel görünüyor ayrıca kullanım kolaylığı için kullanıcı input’ları ve onaylama kısmı ekledim. Eminim ki bu hali daha güzel. (Bu kodları konunun sonunda bulabilirsiniz - İngilizce olarak)

Şimdi programı çalıştırma zamanı. Hadi bakalım çalışıyor mu.


gjfMa2.jpg


Pekâlâ, kodu çalıştırdık. Sizin cihazınızda bu hatayı vermemesi lazım, en azından eğer ki bu sizin ilk mesaj denemenizse doğal olarak.

Tahminimce sonucu merak ediyorsunuzdur. Merakınız aşağıdaki resim ile sonlanacak.



L2XjAd.jpg


Ve işte bu kadar. Başardık. Bir Amerikan numarası yazdığımız mesajımızı gönderdi. Ama asla unutmayın ki API sadece bir SMS’e izin veriyor, yani maksimum 160 karakter. Eğer metniniz 160 karakterden uzunda mesajı göndermeyecektir.
Bu binary metnin ne olduğunu merak edenler için: Orada selam yazıyor :)



Son Sözler

Bugün sizlere kullanışlı olduğunu düşündüğüm bir API tanıttım. Umarım size yararı da dokunur. Kendinize iyi bakın ve bugünlük hoşçakalın.

Önemli: Ne ben ne de TurkHack Team kullanımınızdan doğan sorumlulukları kabul etmemektedir.

Benzer Konu: https://www.turkhackteam.org/sosyal-muhendislik/1942256-anonim-sms-atmak-linux-tht-ozel.html

(Dipnot: Tüm bu konuyu kendim yazdım. Bu yüzden kaynak eklemiyorum. Teşekkürler)


Python Kodları:
Kod:
[COLOR="Plum"]import requests

while True:
	number = input("Enter the Target's phone number (With the country code, but without '+':")
	message = input('Enter your message: ')

	print(f'Receiver : {number}\nYour Message: {message}')

	print("If you want to continue (1)\nIf you want to change the info above(2)")
	edit=int(input())
	
	if edit==1:
		resp = requests.post('https://textbelt.com/text', {
		'phone': number,
		'message': message,
		'key': 'textbelt',
		})
		response = resp.json()
		if response['success'] == False:
 			print('ERROR : ',response['error'])

		elif response['success'] == True:
 			print('DONE! Your Message ID is:',response['textId'])
		break
	elif edit==2:
		continue
	else:
 		print("Wrong Command!\nBe sure you to check the message info for security")
	continue
[/COLOR]
 
Son düzenleme:

Ego1st

Uzman üye
15 Mar 2018
1,109
25
Elinize sağlık. Her dilin ayrı ayrı kodlarını koymanız süper olmuş :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.