ADVERTISEMENT

Abandoned belongings, mock police stations found at a former scam center in Asia

Published Feb 3, 2026 11:19 am
A work station lined with foam for soundproofing is seen inside a scam compound in O'Smach, Cambodia, Monday, Feb. 2, 2026, (AP Photo/Sakchai Lalit)
A work station lined with foam for soundproofing is seen inside a scam compound in O'Smach, Cambodia, Monday, Feb. 2, 2026, (AP Photo/Sakchai Lalit)
O'SMACH, Cambodia (AP) — In the town of O’Smach, along Cambodia’s northern border with Thailand, stands a compound of abandoned buildings that were battered by shelling during recent weeks of armed clashes.
The site, now occupied by Thai troops, had served as one of Cambodia’s notorious scam centers, according to Thai officials.
A six-story building, shown to journalists and international observers on Monday during a trip organized by the Thai military, is scattered with documents, equipment and personal belongings, likely abandoned in haste.
An abandoned bedroom is seen at a scam center in O Smach, Cambodia, Monday, Feb. 2, 2026. (AP Photo/Sakchai Lalit)
An abandoned bedroom is seen at a scam center in O Smach, Cambodia, Monday, Feb. 2, 2026. (AP Photo/Sakchai Lalit)
“They are well-organized. They have good infrastructure and systems, and also the workflow and many, many tactics and techniques to do the scams,” said Lt. Gen. Teeranan Nandhakwang, director of the Thai army’s intelligence unit.
Experts say such scam operations in Cambodia and elsewhere have cheated people around the world out of billions of dollars and tricked people from many countries to work in them under slave-like conditions.
The Thai military said the compound was secured during the December clashes because Cambodian forces had used it as a military base.
A Thai soldier keeps guard outside a scam center in O'Smach, Cambodia, Monday, Feb. 2, 2026, (AP Photo/Sakchai Lalit)
A Thai soldier keeps guard outside a scam center in O'Smach, Cambodia, Monday, Feb. 2, 2026, (AP Photo/Sakchai Lalit)
A ceasefire reached in December stipulated that the warring sides would de-escalate tensions and hold their forces at the positions they occupied prior to the agreement. That includes the compound on Cambodian soil now occupied by Thai troops.
Dozens of rooms have wooden booths lined with foam for soundproofing, scripts written in multiple languages, lists of names and phone numbers, computer monitors and empty brackets for hard drives.
There are also mock-up sets resembling police stations and uniforms of law enforcement of at least seven countries: China, Australia, India, Indonesia, Vietnam, Singapore and Brazil.
Fake dollar bills lie on the floor at a scam center in O'Smach, Cambodia, Monday, Feb. 2, 2026. (AP Photo/Sakchai Lalit)
Fake dollar bills lie on the floor at a scam center in O'Smach, Cambodia, Monday, Feb. 2, 2026. (AP Photo/Sakchai Lalit)
One room has a replica of what appears to be a Vietnamese bank branch, complete with service counters, banners and a waiting area.
The set-ups served as essential to a scam where people are targeted by scam operators pretending to be officials or other authority figures. Scripted approaches were meant to threaten arrest or other legal action unless instructions were followed.

Related Tags

WORLDNEWS SCAM HUB
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.